0

我有一个表格,其中有一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。

4

4 回答 4

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

这对我很好,请检查。

于 2013-02-04T13:09:08.057 回答
0

您必须为转换函数指定日期输入格式,例如:

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

有关更多格式,请参见:http: //msdn.microsoft.com/es-es/library/ms187928.aspx

于 2013-02-04T13:10:21.427 回答
0

谢谢大家帮忙。

我的查询很好,但是我查询了“分组依据”,发现了一些不规则的内容,例如特殊字符或特殊数字。这些信息无法转换。

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

于 2013-02-11T15:27:50.300 回答
0

这可以在您的机器上运行吗?

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

此查询适用于我,但如果我使用格式为“DDMMYYYY”的日期字符串则无效。

有关日期时间的更多信息,请参阅http://msdn.microsoft.com/en-us/library/ms187819.aspx

于 2013-02-04T12:43:56.113 回答