Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL将varchar转换或强制转换为datetime_Sql_Type Conversion - Fatal编程技术网

SQL将varchar转换或强制转换为datetime

SQL将varchar转换或强制转换为datetime,sql,type-conversion,Sql,Type Conversion,我有一个表,列DATEDEPOT为varchar(20) 里面的信息是这样的:20020101-我的意思是YYYYMMDD 我想把它转换成datetime select '20020101' as orignal_date, cast('20020101' as datetime) as converted_date 为此,我检查了其他帖子的答案,但没有任何东西对我有效 以下是我尝试过的: select datedepot, cast(datedepot as datetime)

我有一个表,列
DATEDEPOT
varchar(20)

里面的信息是这样的:
20020101
-我的意思是
YYYYMMDD

我想把它转换成datetime

select '20020101' as orignal_date,
       cast('20020101' as datetime) as converted_date
为此,我检查了其他帖子的答案,但没有任何东西对我有效

以下是我尝试过的:

select datedepot, cast(datedepot as datetime) as test from DessinsV2
我得到这个信息:

味精241、Niveau 16、爱达1、利昂1。
日期和日期的转换/日期的转换

我试过这个:

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
我得到:

味精241、Niveau 16、爱达1、利宁1
日期和日期的转换/日期的转换


这在你的机器上运行吗

DECLARE @var as nvarchar(20)
SELECT @var = '20020101'
SELECT CONVERT(datetime, @var)
此查询适用于我,但如果我使用格式为“DDMMYYYY”的日期字符串,则不适用

有关datetime的更多信息,请参阅

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

这对我来说很好,请检查。

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

选择datedepot,转换(datetime,datedepot,112)作为来自DessinsV2的测试


请参阅:了解更多格式。

感谢大家的帮助

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


因此,我忽略了包含奇怪信息的行,我的查询工作正常。

您使用哪个数据库?这个问题需要(需要)一个SQL引擎标记(MySQL、PostgreSQL等),但尽管请求澄清,但没有提供一个。我将尝试标记这一个为缺乏一个现在,但如果它是关闭的,它肯定可以重新打开后编辑。