第1个回答 2013-05-31
--给你两个转日期的格式 实际中后面那个用的还多一点 虽然写法复杂点
select CAST(列A as datetime) 列A
from (select 列A,ISDATE(列A) bz from tableA ) aa where aa.bz=1
select cast(convert(char(10),列A,120) as datetime) 列A
from (select 列A,ISDATE(列A) bz from tableA ) aa where aa.bz=1
第2个回答 2017-08-22
sql字符串转日期
120或者121的格式是YYYY-MM-DD
而您这个格式是日月年的格式,使用105
SELECT convert(datetime,'30-03-2011',105)
第3个回答 2013-05-31
可能是你的数据库里面, 某些数据 不是有效的日期。
你尝试执行一下
SELECT A FROM 表
WHERE
ISDATE( A ) = 0;
该语句将返回那些 认为不是日期的数据。
第4个回答 2019-04-19
MS SQL 2008R2中实测:
select convert(datetime,'1899-12-30',20)+43574
输出
2019-04-19 00:00:00.000
核心是 convert(datetime,'1899-12-30',20)
我为了把excel中变成整数的日期在sql中转换回日期,小费劲了一把。