在过去的几个小时里,我一直在尝试使用 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"); 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!