[英]SQL convert or cast a varchar to datetime
我有一個表,其中列DATEDEPOT
為varchar(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.