2012-08-26 36 views
1

即時通訊設法顯示日期和時間從MSSQL服務器日期時間表使用PHP,從SQL Server的值是日期時間EX。 2012-08-20 06:23:28:214。現在我想顯示它確切的結果,但它顯示它像這樣EX。 Aug 20 2012 6:23AM。我曾嘗試使用strtotime,但毫秒不顯示或顯示:000php/mysql顯示sql服務器日期時間

任何幫助非常感謝。提前致謝。

+0

由YYYY-MM-DD日期格式來看,我假設當你說的 「SQL Server」,這意味着你的意思是 「MySQL服務器」,「MS SQL服務器「 - 完全不同的產品。 –

+0

對不起,那應該是MS SQL SERVER .. –

+0

@ytse_jam它應該是MS SQL Server?我有點困惑,如果它不是mysql,你可以從標題和標籤中刪除它 - 我會這樣做,但不想刪除錯誤的標籤。 – Fluffeh

回答

1

嘗試此,

SELECT CONVERT(VARCHAR(50), CAST('2012-08-20 06:23:28:214' as DateTime), 100) 
      AS [OutPut] 

-- expected output 
--  Aug 20 2012 6:23AM 

從上面的例子中,我爲了string date轉換成原始數據類型DateTime使用CAST。但在原始查詢中,您可以省略函數CAST,因爲您已提到該列已在DateTime數據類型上。

SELECT CONVERT(VARCHAR(50), columnDateTime, 100) 

SQLFiddle Demo

How to Format Date and DateTime in MSSQL Server

+0

嗨約翰,非常感謝。選擇轉換查詢有竅門。再次感謝。 –

0

使用PHP的strtotime()將sql日期轉換爲unix時間,然後使用date()根據需要重新格式化它。 =strtotime("2012-08-20 06:23:28.214")的作品,所以它只是使用字符串操作將最終冒號改爲小數點的問題。

或者,this blog post有可用於讓MS SQL Server直接返回unix時間的代碼。關鍵功能是SELECT DATEDIFF(second, '1970/01/01 00:00:00', @date)

如果您實際上使用MySQL而不是SQL Server,則可以使用函數UNIX_TIMESTAMP()返回當前的unix時間。

0

DateTime對象的輸入字符串類型爲u,表示微秒(最多6個)。

DateTime::format不然而使用相同的字符串作爲標準date但以下是從關於u的文檔取入輸出數據:

微秒(在PHP 5.2.2添加)。請注意,date()將始終生成000000,因爲它需要一個整數參數,而DateTime :: format()確實支持微秒。

+0

感謝您的答案,只是爲了讓它更清晰,即時查詢使用PHP的MSSQL SERVER。來自MSSQL SERVER的實際數據就像這個「2012-08-20 06:23:28:214」,現在如果我回顯它,輸出就像這樣「2012年8月20日上午6:23」。現在我想要的是回顯實際的數據。正如我前面所說,我嘗試使用strtotime,但毫秒的回聲:000。 –