2017-06-22 71 views
0

我有一個列名爲[Create_Date] as [Datetime]的表(例如='2016-06-07 07: 29:45.290')。將Datetime'YYYY-MM-DD HH:mm:ss'轉換爲'DD/MM/YYYY HH:mm:ss'

我的客戶想要這個專欄的格式爲DD\MM\YYYY hh:mm:ss(例如= '07/06/2016 07:29:45')。

我做到了由:

SELECT FORMAT (convert(datetime2(0),create_date), 'dd/MM/yyyy hh:mm:ss', 'en-US') as Record_Date; 

問題與這種解決方案是,列類型Record_Date是[VARCHAR],我希望它在一個DATETIME2(0)的格式。

+1

你的意思是你想改變目標字段datetime 2? –

+0

是的!到datetime2(0)/ datetime格式爲'dd/MM/yyyy hh:mm:ss' –

回答

3

日期/時間值以內部格式存儲。當你返回它們時,它們將以內部格式返回。讀取數據的應用程序決定如何格式化該值。

有一件事你可以做的是創建一個計算列與格式化爲字符串的值。如果你的代碼工作,你可以這樣做:

alter table t 
    add create_date_ddmmyyyy as (format(convert(datetime2(0), create_date), 'dd/MM/yyyy hh:mm:ss', 'en-US')); 

那麼你可以參考create_date_ddmmyyyy每當你想要的格式的版本(我建議這是輸出有用)。

+0

對不起,也許我的問題不清楚。我不想將新的「Record_Date」列填充到表中,我需要它,結果集的格式爲「dd/MM/yyyy hh:mm:ss」和datetime/datetime2(0)數據類型 。 10X –