I needed to whip up a date delta (in my case, today minus 13 months) for SQL. I couldn't push the calculation onto the database, because the field in question is of type text rather than date, and converting it to a date and then subtracting the delta proved to be too expensive. Creating the date in Perl and using that is far more efficient. Don't blame me, I didn't design the schema, I just use it.
It's perhaps too-clever-by-half in that it's the most-commented bit of code I've written in some time, but I like the way it plays with list context.
use Date::Calc 'Add_Delta_YM'; my $date_limit = sprintf( '%02d-%02d-%04d', reverse # Y M D --> D M Y Add_Delta_YM( sub { $_[5] + 1900, # year $_[4] + 1, # month $_[3], # and day 0, # less this many years -13, # and this many months }->(localtime), # from today ) );
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Generate a date stamp of today less a date interval
by dave0 (Friar) on Dec 20, 2005 at 04:57 UTC | |
Re: Generate a date stamp of today less a date interval
by explorer (Chaplain) on Dec 20, 2005 at 08:58 UTC | |
Re: Generate a date stamp of today less a date interval
by TedPride (Priest) on Dec 20, 2005 at 09:58 UTC |
Back to
Cool Uses for Perl