回答

收藏

MSSQL / dblib的PDO日期时间格式

技术问答 技术问答 212 人阅读 | 0 人回复 | 2023-09-14

MSSQL 2005数据库有排名规则German_Phonebook_BIN(但这并不重要)。PDO和FreeTDS(使用Debian4 l4 z3 s! m9 o1 L0 q9 J
Squeeze下的PHP)完成与db当我试图从表中选择日期时间值时,我会得到以下结果:
( @: K& Y# n7 z+ C2008年4月1日12:00:00:009 l4 o% w, A. g( i' T
但我希望得到
; J! m) A. K+ j2008-01-01 00:00:00
+ ]9 D# e: h# ?! n& N! L" D4 H(时间00:00:00转换为12:00:00,不知道为什么00:00 = 12:00 ),我不能操纵这些。SELECT语句(
% B. W6 v( h. E* s2 b0 A6 H5 R/ f)的转换CONVERT。我在PDO中找不到设置日期格式的选项。SET DATEFORMAT并且SETLANGUAGE查询操作前不会影响。任何人都可以暗示PDO能完成(而且只能完成)的地方?(顺便说一句,PEAR ::& d1 I; H- R( J/ g& n
MBD2以预期格式返回datetime列,但是当MDB2必须与UTF-8和MSSQL一起使用的时候很可怕)
# j; U8 u- T1 H1 X, R更多信息(只显示重要片段):1 ^$ q3 H0 X4 m4 R  f8 h9 m. s0 m$ T
_dsn = 'dblib:host=' . $this->_db['host'] . ';dbname=' . $this->_db['database'] . ';charset=UTF-8';$this->_handle = new PDO($this->_dsn,$this->_db['user'],$this->_db['password']);print_r($this->_handle->query("SELECT [date_column] FROM [some_table]"));                  x( E3 v0 U1 k! b
    解决方案:                                                               
; E* P$ K5 |( V3 H: ]                                                                检查设置/etc/freetds/locales.conf或FREETDSCONF指向任何位置的设置-
4 g. D, V# N7 _- j. d: G* j2 N8 g- Y例如,请参见https://www.centos.org/modules/newbb/viewtopic.php?topic_id=29646。
/ t. T# G# w; g% N另一种选择可能是convert在您的SQL语句中使用…
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则