簡體   English   中英

SQL 將 varchar 轉換或強制轉換為日期時間

[英]SQL convert or cast a varchar to datetime

我有一個表,其中列DATEDEPOTvarchar(20)

里面的信息是這樣的: 20020101 - 我的意思是YYYYMMDD

我想在日期時間轉換它。

為此,我查看了其他帖子的答案,但沒有任何效果。

這是我嘗試過的:

select datedepot, cast(datedepot as datetime) as test from DessinsV2

我收到這條消息:

Msg 241, Niveau 16, État 1, Ligne 1。
Échec de la Conversion de la date et/ou de l'heure à partir d'une chaîne de caractères。

我試過這個:

declare @Madate char(10)
SELECT @MaDate=datedepot from DessinsV2

select convert(datetime,left(@Madate,4)+substring(@Madate,5,2)+right(@Madate,2))as DATEDEPOTTEST from dessinsv2

我得到:

Msg 241, Niveau 16, État 1, Ligne 1
Échec de la Conversion de la date et/ou de l'heure à partir d'une chaîne de caractères。

這是否在您的機器上運行?

DECLARE @var as nvarchar(20)
SELECT @var = '20020101'
SELECT CONVERT(datetime, @var)

此查詢對我有用,但如果我使用格式為“DDMMYYYY”的日期字符串則不行。

有關日期時間的更多信息,請參閱http://msdn.microsoft.com/en-us/library/ms187819.aspx

select '20020101' as orignal_date,
       cast('20020101' as datetime) as converted_date

這對我來說很好用,請檢查。

您必須為轉換函數指定日期輸入格式,例如:

select datedepot, convert(datetime, datedepot,112) as test from DessinsV2

有關更多格式,請參見: http : //msdn.microsoft.com/es-es/library/ms187928.aspx

謝謝大家幫忙。

我的查詢很好,但我查詢了“分組依據”,我發現了一些不規則的內容,如特殊字符或特殊數字。 這些信息無法轉換。

所以我忽略了帶有奇怪信息的行,我的查詢工作正常。

暫無
暫無

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

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