sql字符串转换日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql字符串转换日期相关的知识,希望对你有一定的参考价值。

update A set birthday=subSTRING(id,7,4)+'-'+subSTRING(id,11,2)+'-'+subSTRING(id,13,2)

怎么写语句才可以把我取出subSTRING(id,7,4)....转换成日期?

字符串转日期

to_date('2016-11-04','yyyy-mm-dd hh24:mi:ss')

根据需要转换

to_date('2016','yyyy'),不过只有年份的话会变成这样

参考技术A --给你两个转日期的格式 实际中后面那个用的还多一点 虽然写法复杂点
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
参考技术B sql字符串转日期
120或者121的格式是YYYY-MM-DD
而您这个格式是日月年的格式,使用105
SELECT convert(datetime,'30-03-2011',105)
参考技术C 可能是你的数据库里面, 某些数据 不是有效的日期。

你尝试执行一下

SELECT A FROM 表
WHERE
ISDATE( A ) = 0;

该语句将返回那些 认为不是日期的数据。
参考技术D 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中转换回日期,小费劲了一把。

sql 如何使用SQL将字符串转换为日期?


-----------------------Vertica--------------------------------

select

'2017-03-31'                          as TextField,
to_date('2017-03-31', 'YYYY-MM-DD')   as Datefield

-----------------------PostgreSQL----------------------------

select

'2017-03-31'                          as TextField,
to_date('2017-03-31', 'YYYY-MM-DD')   as Datefield

------------------------MySQL---------------------------------

select

'2017-03-31'                          as TextField,
str_to_date('2017-03-31', '%Y-%m-%d') as DateField     

-----------------------SQL Server-----------------------------

select

'2017-03-31'                          as TextField,
convert(date, '2017-03-31')           as DateField1,
cast('2017-03-31' as date)            as DateField2

以上是关于sql字符串转换日期的主要内容,如果未能解决你的问题,请参考以下文章

sql字符串转换日期

hvie sql日期转换成字符串 格式为YYYYMMDD 怎么写?

sql如何将字符串转为日期

sql日期格式转换

SQL SERVER字符串转换问题

如何SQL把字符串转换成日期输出??