2011-08-10 112 views
5

我有幾個關於SQL Server日期的問題。Microsoft SQL Server 2008 - 日期

  1. 如何分離datetime值 「2011-08-10 14:56:17.267」 爲日期和時間戳在兩個單獨的列。例如。日期「2011-08-10」和時間戳「14:56:17」

  2. 我想從datetime值中刪除時間戳到「2011-08-10」,仍然可以按日期排序數據(因此未轉換爲varchar)。此外,在那裏將日期值更改爲'2011年8月10日',並且仍然可以排序(不按字母順序排列,但以實際日期排列)。

謝謝 HL

+0

這兩個問題應該單獨發佈。 –

回答

0

使用convert函數的參數從資源http://www.mssqltips.com/tip.asp?tip=1145

-- simple conversion example: 
SELECT CONVERT(VARCHAR(10), GETDATE(), 102) -- for date 
SELECT CONVERT(VARCHAR(10), GETDATE(), 8) -- for time 
6

對於第一種:

UPDATE atable 
SET 
    DateColumn = CAST(DateTimeColumn AS date), 
    TimeColumn = CAST(DateTimeColumn AS time) 

至於第二個日期顯示格式與日期無關值。您可以按日期列排序結果集,但在SELECT子句中,您可以使用CONVERT以所需格式顯示日期。例如:

SELECT 
    CONVERT(varchar, DateColumn, 106) AS Date, 
    … 
FROM atable 
ORDER BY DateColumn