我的表格DATEDEPOT
列为varchar(20)
。
里面的信息是这样的:20020101
- 我的意思是YYYYMMDD
我想在datetime中转换它。
为此,我检查了其他帖子的答案,但没有任何对我有用。
以下是我的尝试:
select datedepot, cast(datedepot as datetime) as test from DessinsV2
我收到此消息:
Msg 241,Niveau 16,État1,Ligne 1.
Échecdela conversion de la date et / ou de l'heureàpartird'unechaînedecaractè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,État1,Ligne 1
Échecdela conversion de la date et / ou de l'heureàpartird'unechaînedecaractères。
感谢您的帮助。
答案 0 :(得分:0)
这是否在您的计算机上运行?
DECLARE @var as nvarchar(20)
SELECT @var = '20020101'
SELECT CONVERT(datetime, @var)
此查询适用于我,但如果我使用格式为' DDMMYYYY'的日期字符串则不适用。
有关日期时间的更多信息,请参阅http://msdn.microsoft.com/en-us/library/ms187819.aspx。
答案 1 :(得分:0)
select '20020101' as orignal_date,
cast('20020101' as datetime) as converted_date
这项工作对我好,请检查。
答案 2 :(得分:0)
您必须为转换功能指定日期输入格式,如:
select datedepot, convert(datetime, datedepot,112) as test from DessinsV2
请参阅:http://msdn.microsoft.com/es-es/library/ms187928.aspx了解更多格式。
答案 3 :(得分:0)
谢谢大家的帮助。
我的查询很好,但我查询'分组',我发现了一些不规则的内容,如特殊字符或特殊数字。这些信息无法转换。
所以我忽略了有奇怪信息的行,我的查询工作正常。