簡體   English   中英

SQL轉換日期時間

[英]SQL Convert datetime

將DateTime轉換為其他格式的現有SQL語句已經工作了很長時間,但現在在執行查詢后的幾秒鍾就會出現“查詢超時已過期”錯誤。

SQL = "SELECT top 1000000 CONVERT(VARCHAR(10),TimeStamp,101) + ' ' + 
         CONVERT(CHAR(8),(CONVERT(DATETIME,TimeStamp,113)),114), 
         LogicName, PointValue FROM Trends order by LogicName"

原始日期時間是這樣的: 3/21/2017 6:53:00 PM

所需的甲酸鹽是: 03/21/2017 18:53:00

有沒有其他/更好的方法來實現預期的結果?

我認為它與連接字符串配置中的“連接超時”有關。 嘗試將“連接超時”參數值設置為大於當前值。 (嘗試將該值設為60並檢查)。 您的查詢 -

SELECT TOP 1000000 CONVERT(VARCHAR(10), GETDATE(), 101) + ' ' + 
CONVERT(VARCHAR(8), GETDATE(), 114) AS [Date & Time]
    ,LogicName
    ,PointValue
FROM Trends
ORDER BY LogicName

一百萬個DateTime to varchar轉換需要一段時間。 首先,考慮客戶端應用程序是否可以根據需要處理格式,而不是格式化查詢中的所有百萬條+記錄。

如果查詢必須以指定的格式提供TimeStamp值,那么,為了提高性能,您可能只想將計算列添加到以該格式存儲TimeStamp值的表中,如下所示:

ALTER TABLE Trends
ADD TimeStampFormatted AS FORMAT(TimeStamp, 'MM/dd/yyyy HH:mm:ss')

然后使用此查詢:

SELECT top 1000000 TimeStampFormatted, LogicName, PointValue 
FROM Trends order by LogicName

它會更快,但它需要更多的存儲,並且它會復制數據,但如果檢索速度是最重要的因素,那么這是一個不錯的選擇。

暫無
暫無

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

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