基于perl中的当前日期和时间检索数据

时间:2014-05-22 03:39:19

标签: sql perl

我的数据库中的数据:

loadtime             |    location
-------------------------------------
2000-May-08 10:45am  |    switzerland
2014-may-22 11:00am  |    canada
2014-may-22 10:40am  |    canada

我只想显示具有最新/当前加载时间的数据,例如刚刚过去的30分钟:

my $sqlstmt="SELECT loadtime from mydata
             WHERE loadtime =sysdate -30/1440";

我想只显示新插入的数据。因此,如果没有新的插入数据,它将发送电子邮件通知。但我不知道如何实现这个?

1 个答案:

答案 0 :(得分:0)

只需跟踪显示的最新记录的日期,并显示晚于30分钟的所有内容。

这样的事情应该做你需要的。请注意,它没有经过测试,只是它会编译。

use strict;
use warnings;

use DBI;

my ($dsn, $user, $pass) = ();

my $dbh = DBI->connect($dsn, $user, $pass) or die $DBI::errstr;

my ($latest) = $dbh->selectrow_array('SELECT sysdate - 0.5/24');

my $sth = $dbh->prepare(<<__END_SQL__);
SELECT loadtime, location
FROM table
WHERE (sysdate - loadtime) * 24 < 0.5
AND loadtime > ?
ORDER BY loadtime DESC
__END_SQL__

while () {

    $sth->execute($latest);
    my $rows = $sth->fetchall_arrayref;

    # Display $rows

    $latest = $rows->[0][0];

    sleep 60;
}