gpt4 book ai didi

php - MSSQL/dblib 的 PDO 日期时间格式

转载 作者:可可西里 更新时间:2023-10-31 22:47:59 36 4
gpt4 key购买 nike

MSSQL 2005 数据库具有排序规则“German_Phonebook_BIN”(但这并不重要)。与数据库的连接是通过 PDO 和 FreeTDS 完成的(在 Debian Squeeze 下使用 PHP)。当我尝试从表中选择日期时间值时,我得到如下结果:

2008 年 4 月 1 日 12:00:00:000

但我希望得到

2008-01-01 00:00:00

(注意,时间00:00:00转化为12:00:00,不知道为什么00:00=12:00???)我无法操纵 SELECT 语句(用于使用 CONVERT 进行转换)。我在 PDO 中找不到设置日期格式的选项。 SET DATEFORMATSET LANGUAGE 在查询运行之前也不会影响这一点。任何人都可以提示在 PDO 中可以在哪里完成(并且只能完成)吗? (顺便说一下,PEAR::MBD2 以预期的格式返回日期时间列,但是 MDB2 在必须使用 UTF-8 和 MSSQL 时非常糟糕)

好的,更多信息(仅显示重要片段):

<?php
$this->_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]"));

最佳答案

检查 /etc/freetds/locales.conf 中的设置或 FREETDSCONF 指向的任何地方 - 例如,请参阅 https://www.centos.org/modules/newbb/viewtopic.php?topic_id=29646 .

另一种选择是使用 convert in your SQL statement ...

关于php - MSSQL/dblib 的 PDO 日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8266651/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com