[ale] Calculate Midnight in Perl

Christopher Fowler cfowler at outpostsentinel.com
Thu Jul 6 12:48:23 EDT 2006


On Thu, 2006-07-06 at 12:37 -0400, James Sumners wrote:
> Why not just `SELECT * FROM table WHERE date_col = CURDATE();`? (If
> you are using MySQL. I assume other DBs have the same sort of
> functionality.)

Is that midnight?  Or does CURDATE() imply today only?  I want to run
the report at 11:59pm and only get rows for that day.

> 
> 
> On 7/6/06, Christopher Fowler <cfowler at outpostsentinel.com> wrote:
> > I need to calculate midnight in perl so that I can do a select on a
> > table and just get the current day's entries.  Here is how I did it.
> >
> > --- [ Cut Here ] --------------
> > #!/usr/bin/perl
> >
> > use POSIX;
> > use strict;
> >
> > sub midnight {
> >         my $t = shift;
> >         $t = ($t ? $t : time());
> >         my (undef,undef,undef,$mday,$mon,$year,$wday,$yday,$isdst) =
> >             localtime($t);
> >         my $ti = POSIX::mktime(0, 0, 0, $mday, $mon, $year, 0, 0 ,0);
> >         return $ti;
> >
> > }
> >
> > my $ti = midnight(time());
> > print POSIX::ctime($ti);
> > --- [ Cut Here ] --------------
> >
> > Output:
> > --- [ Cut Here ] --------------
> > [cfowler at shuttle ~]$ ./midnight.pl
> > Thu Jul  6 01:00:00 2006
> > --- [ Cut Here ] --------------
> >
> > Is it saying that 1am is the time since I'm on EDT now?
> > I was expecting 00:00:00
> >
> >
> > _______________________________________________
> > Ale mailing list
> > Ale at ale.org
> > http://www.ale.org/mailman/listinfo/ale
> >
> 
> 




More information about the Ale mailing list