对于datetime字段,mssql_query()字段为空

时间:2010-01-25 15:47:48

标签: php sql-server datetime

在Windows Server 2003(64位)上运行php 5.2.5并连接到SQL Server 2008

使用mssql_query从SQL Server获取datetime字段时遇到问题。我查询的任何datetime字段都不返回任何内容。查询中的所有其他字段都是正确的,但日期时间字段为空。

我们最近从PEAR DB切换到了mssql_函数,这就是问题的原因。切换回PEAR不是一种选择。

我在php.net mssql_query页面上找到了它,它确实有效,但我有数百个查询,我希望有一个解决方案,不需要我们更新每个查询。任何人都有一个更好的解决方案,不涉及重写每个查询?

“mssql_query()以不寻常的格式返回'datetime'列的值,这让我感到很沮丧。为了让你的值以通常的'YYYY-MM-DD HH:MM:SS'格式返回,您可以在查询中使用CONVERT函数,如下所示:

SELECT CONVERT(varchar, INVOICE_DATE, 121) AS INVOICE_DATE ...

其中'INVOICE_DATE'是'datetime'列的名称。“

1 个答案:

答案 0 :(得分:0)

结束只是做一些字符串替换来解决这个问题。

首先,我创建了一个日期字段数组,我可以从我正在使用的SQL Server数据库中进行选择。

我们有一个DB Abstraction类,我们运行每个查询。

在DB类中,我检查查询中是否有“FROM”。 如果是,我将字符串拆分为FROM以获取SELECT字段部分 然后我对字段数组做一个foreach,如果该字段存在于字符串中,我用CONVERT替换字段(varchar,FIELD,121)AS FIELD

对我很有用......不适用于SELECT *但我们不使用任何SELECT *查询,所以对我们来说不是问题。