SQL将varchar转换或转换为datetime

时间:2013-02-04 12:33:42

标签: sql type-conversion

我的表格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。

感谢您的帮助。

4 个答案:

答案 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)

谢谢大家的帮助。

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

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