Ssms

轉換儲存為 varchar 的日期

  • April 6, 2017

我正在創建一個查詢,其中有一列日期以 DD-MMM-YYYY 格式儲存為 VARCHAR。

您能告訴我如何將其轉換為日期格式嗎?

我不想以任何方式更改原始表,因為它不是我的修補程序!

您可以使用CAST將您的VARCHAR值轉換為DATE格式。

CAST 的語法:

CAST ( expression AS data_type [ ( length ) ] )

範例執行:您可以單獨轉換為 DATE 或 DATETIME 格式:

DECLARE @TestDate AS VARCHAR (12) = '22-MAY-2015';
SELECT CAST(@TestDate AS DATE);

輸出:2015-05-22

DECLARE @TestDate1 AS VARCHAR (12) = '22-MAY-2015';
SELECT CAST(@TestDate1 AS DATETIME);

輸出:2015-05-22 00:00:00.000

在/和數據類型CONVERT之間轉換時應該使用。date``datetime``varchar

依賴日期格式的隱式轉換會產生意想不到的結果

通過使用CONVERT,您可以為您的數據明確指定日期和時間樣式。DD-MMM-YYYY 的日期格式,對應於日期格式 105,因此您可以使用如下內容:

DECLARE @TestDate AS VARCHAR (12) = '06-MAR-2017';
SELECT CONVERT(DATE,@TestDate,105);

關於為什麼要支持CONVERT的其他原因CAST本文提供了更多範例

引用自:https://dba.stackexchange.com/questions/169287