在过去的几个小时里,我一直在尝试使用 DATE_FORMAT
格式化 MySQL 时间戳,但它没有做任何事情!
Perl 代码:
use CGI;
use DBI;
my $q = new CGI;
# Database connection goes here
my $sth_select = $dbh->prepare(
"SELECT DATE_FORMAT(timestamp, '%m/%d/%y') FROM foo"
);
$sth_select->execute() || die "Unable to execute query: $dbh->errstr";
if (my $ref = $sth_select->fetchrow_hashref()) {
print $q->header;
print " TIME: $ref->{timestamp}";
exit;
}
结果
TIME:
它根本不打印格式化时间,它是空白的!
当我尝试打印时间戳时,它不会打印任何内容,但是如果我要删除 DATA_FORMAT
并且只是简单地执行 SELECT timestamp FROM foo
,那么它打印时间戳就好了,尽管没有格式化。有人可以提供他们对此事的见解吗?
请您参考如下方法:
返回的散列具有数据库提供的作为键的列标题。当使用这样的函数时,列标题实际上是“DATE_FORMAT(timestamp, '%m/%d/%y')”。 尝试将您的 SQL 修改为:
my $sth_select = $dbh->prepare("SELECT DATE_FORMAT(timestamp, '%m/%d/%y') AS timestamp FROM foo");