如何翻轉「2012- 12-01 12:33:00.0」變爲「2012- 01-12 12:33:00.0」?我試過「選擇轉換(varchar(50),convert(datetime,log_date,103),121)」並同時使用101和103,但仍然無法翻轉它。如何在日期時間內翻轉月份和日期?
的數據庫是MS SQL
如何翻轉「2012- 12-01 12:33:00.0」變爲「2012- 01-12 12:33:00.0」?我試過「選擇轉換(varchar(50),convert(datetime,log_date,103),121)」並同時使用101和103,但仍然無法翻轉它。如何在日期時間內翻轉月份和日期?
的數據庫是MS SQL
DECLARE @date DATETIME
SET DATEFORMAT ydm
SET @date = '2012-12-01 12:33:00.0'
SELECT @date
SET DATEFORMAT ydm
會給你你需要的格式的結果。
其他選項
UPDATE Table_Name
SET COLUMN_NAME= convert(varchar(20), convert(Date, @date, 101)) + convert(varchar(30),convert(time, @date))
WHERE
OR
select convert(datetime, convert(varchar(100), @date), 20)
你可以只執行一些字符串操作(注:未經測試的代碼)
UPDATE table
SET date=
LEFT(CONVERT(VARCHAR(50),date,128),4) -- '2012'
+SUBSTRING(CONVERT(VARCHAR(50),date,128),7,3) -- '-01'
+SUBSTRING(CONVERT(VARCHAR(50),date,128),4,3) -- '-12'
+RIGHT(CONVERT(VARCHAR(50),date,128),LEN(CONVERT(VARCHAR(50),date,128))-10) -- ' 12:33:00.0'
不這樣做的SQL。在需要顯示日期時間時在應用程序中執行此操作。 – Oded 2012-04-19 09:48:27
不,我不能。原因是因爲數據錯誤地填充了。所以我需要修復這些數據。其他日期字段格式正確。因此,我不能只爲這個領域改變應用程序。數據必須更正。 – cooldude 2012-04-19 09:52:43
你是什麼意思?日期是否正確? DateTime值**沒有格式** - 這是SSMS向您顯示的方式。 – Oded 2012-04-19 09:54:08