Perl DBI mssql

用CPAN的DBD::Sybase 连接sqlserver的时候,取数据类型是datetime类型的数据的时候

可能遇到显示有问题。

如:

my $dbh = DBI->connect( q{dbi:Sybase:server=test;database=testDB}, q{test}, q{test}, {AutoCommit =>1} ) or die $DBI::errstr; my $sth = $dbh->prepare(qq{SELECT top 10 my_date FROM tableM} ); $sth->execute(); while (my $row = $sth->fetchrow_hashref ) { print $row->{my_date},"/n"; } $sth->finish; $dbh->disconnect();

 

这样,在终端显示出来就会是“6月 09 2009 10:49上午” 这样。

如果想要的是 YYYY-MM-DD HH:MM:SS 这样的格式的话。可以用sqlserver的 convert内置函数转化一下my_date.

sql就变为“SELECT top 10 convert(varchar(19),my_date,121)   FROM tableM" 这样。但是另外一个解决

办法是用DBD::Sybase  的 $dbh->syb_date_fmt($fmt); 方法。$fmt 有几种选项。ISO是YYYY-MM-DD HH:MM:SS 这样的格式。

你可能感兴趣的:(Date,server,perl,Sybase,sqlserver,终端)