簡體   English   中英

T-SQL:如何轉換日期的字符串表示形式

[英]T-SQL: How to convert string representations of a date

我有一些以varchar(10)格式存儲的日期。

日期是這樣的:

2008-01-06
2008-01-13
2008-01-20
2008-01-27
2008-02-03
2008-02-10
2008-02-17
2008-02-24

我希望它們采用dd / mm / yyyy格式(也是DATE數據類型)

我嘗試了以下方法:

SELECT CONVERT(VARCHAR(max), startWeek, 103) date
FROM dbo.GoogledataFinal

為什么這樣輸出:

2008-01-06
2008-01-13
2008-01-20
2008-01-27
2008-02-03
2008-02-10
2008-02-17

如果您可以修復我的代碼,那就太好了,但是我對為什么發生這種情況更感興趣,所以像我5歲這樣的解釋可能會有所幫助。

您正在從varchar轉換為varchar 樣式參數甚至都沒有使用。

相反,請轉換為date ,然后返回varchar

select convert(varchar(10), cast('2008-01-06' as datetime), 103)

打印:

06/01/2008
SELECT CONVERT(varchar(10), CONVERT(datetime, startWeek), 103) date
FROM dbo.GoogledataFinal

嘗試這個:

SELECT (SUBSTRING (startWeek,9, 2) + '/' + SUBSTRING (startWeek,6, 2) + '/' SUBSTRING (startWeek,1, 4))  AS date
FROM dbo.GoogledataFinal

您需要將varchar轉換為日期時間,然后使用所需格式轉換回varchar:

SELECT CONVERT( varchar(10), 
         CONVERT(DATETIME, '2008-02-03', 120) -- Varchar "yyyy-mm-dd" to Datetime
       , 103) -- Datetime to Varchar "dd/mm/yyyy"

對於您的情況,SQL可能是:

SELECT CONVERT( varchar(10), 
         CONVERT(DATETIME, startWeek, 120)
       , 103)
FROM dbo.GoogledataFinal

暫無
暫無

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

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