簡體   English   中英

日期時間字段的mssql_query()字段為空

[英]mssql_query() fields blank for datetime fields

在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”是“日期時間”列的名稱。”

最后只是做一些字符串替換來解決此問題。

首先,我創建了一個日期字段數組,可以從正在使用的SQL Server DB中進行選擇。

我們有一個DB Abstraction類,我們運行每個查詢。

在數據庫類中,我檢查查詢中是否存在“ FROM”。 如果是我在FROM上拆分了字符串以獲取SELECT字段部分,那么我對字段數組進行了一次foreach,並且如果該字段存在於字符串中,我將該字段替換為CONVERT(varchar,FIELD,121)AS FIELD

對我來說很好用...不適用於SELECT *,但我們不使用任何SELECT *查詢,因此對我們來說不是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM