Perl的SQL时间戳:如何添加一天呢?

时间:2013-07-14 12:13:18

标签: sql perl date timestamp

首先,我从Perl脚本中的数据库中获取SQL格式的TIMESTAMP,然后使用substr将TIMESTAMP拆分为五个不同的部分(年,月,日,小时,分钟和秒钟。

TIMESTAMP格式如下:YYYY-MM-DD HH:MM:SS

 my $year   = substr($TIMESTAMP, 0, 4);
 my $month  = substr($TIMESTAMP, 5, 2);
 my $day    = substr($TIMESTAMP, 8, 2);
 my $hour   = substr($TIMESTAMP, 11, 2);
 my $minute = substr($TIMESTAMP, 14, 2);

我想将一天添加到TIMESTAMP ,然后将其发送到具有以下格式的函数:YYYYmmDDHHMMSS

非常感谢。

3 个答案:

答案 0 :(得分:3)

使用Time::Piece,Time :: Piece首次使用perl v5.9.5发布。

#!/usr/bin/perl
use strict;
use warnings;
use 5.014;
use Time::Piece;
use Time::Seconds;

my $date = '2013-07-14 02:33:10';

my $t = Time::Piece->strptime($date, "%Y-%m-%d %T");
$t += ONE_DAY;

say $t->strftime("%Y%m%d%H%M%S");

打印     20130715023310

答案 1 :(得分:0)

将它们放在一起:

e.g。

sub test {
  print ("@_\n");
}

&test("$year$month$day$hour$minute$second");

(您没有谈论$second,但您的格式需要它)

答案 2 :(得分:0)

您可能还想考虑查看DateTime。您可以使用适当的DateTime::Format::…模块解析SQL时间戳。您可以使用DateTime中的方法添加一天。然后,您可以使用DateTime::Format::…中的相应模块或使用DateTime中的方法的手动格式将其格式化为输出。