本文为您介绍STRING、TIMESTAMP与DATETIME类型数据间的转换方法,帮助您在实际业务处理过程中,快速对标找到合适的日期转换方法,提升业务处理效率。
日期数据格式转换常见场景如下:
STRING转换为TIMESTAMP
STRING转换为DATETIME
TIMESTAMP转换为STRING
TIMESTAMP转换为DATETIME
DATETIME转换为TIMESTAMP
DATETIME转换为STRING
STRING转换为TIMESTAMP
将STRING类型数据转换为TIMESTAMP类型(格式为
yyyy-mm-dd hh:mi:ss.ff3
)的日期值。
使用
CAST
函数进行转换。
输入的STRING类型数据的格式至少要满足
yyyy-mm-dd hh:mi:ss
要求。
示例1:使用CAST函数,将STRING类型数据
2009-07-01 16:09:00
转换为TIMESTAMP类型。命令示例如下。
--返回2009-07-01 16:09:00.000。
select cast('2009-07-01 16:09:00' as timestamp);
示例2:
错误
使用CAST函数的命令示例如下。
--返回NULL。输入数据格式不满足要求。至少要包含yyyy-mm-dd hh:mi:ss格式。
select cast('2009-07-01' as timestamp);
示例1:使用CAST函数,将STRING类型数据
2009-07-01 16:09:00
转换为DATETIME类型。命令示例如下。
--返回2009-07-01 16:09:00。
select cast('2009-07-01 16:09:00' as datetime);
示例2:使用TO_DATE函数,指定
format
参数,将STRING类型数据
2009-07-01 16:09:00
转换为DATETIME类型。命令示例如下。
--返回2009-07-01 16:09:00。
select to_date('2009-07-01 16:09:00','yyyy-mm-dd hh:mi:ss');
示例3:
错误
使用CAST函数的命令示例如下。
--返回NULL。输入数据格式不满足要求。必须为yyyy-mm-dd hh:mi:ss格式。
select cast('2009-07-01' as datetime);
示例4:
错误
使用TO_DATE函数的命令示例如下。
--返回NULL。输入数据格式不满足要求。必须为yyyy-mm-dd hh:mi:ss格式。
select to_date('2009-07-01','yyyy-mm-dd hh:mi:ss');
示例1:使用CAST函数,将TIMESTAMP类型数据
2009-07-01 16:09:00
转换为STRING类型。为构造TIMESTAMP类型数据,总共需要使用2次CAST函数。命令示例如下。
--返回2009-07-01 16:09:00。
select cast(cast('2009-07-01 16:09:00' as timestamp) as string);
示例2:使用TO_CHAR函数,将TIMESTAMP类型数据
2009-07-01 16:09:00
转换为STRING类型。为构造TIMESTAMP类型数据,需要使用到1次CAST函数。命令示例如下。
--返回2009-07-01 16:09:00。
select to_char(cast('2009-07-01 16:09:00' as timestamp),'yyyy-mm-dd hh:mi:ss');
将TIMESTAMP类型(格式为
yyyy-mm-dd hh:mi:ss.ff3
)的日期值转换为DATETIME类型(格式为
yyyy-mm-dd hh:mi:ss
)的日期值。
方法一:使用
CAST
函数进行转换。
方法二:使用
TO_DATE
函数进行转换。
使用TO_DATE函数时,需要指定
format
参数的取值为
yyyy-mm-dd hh:mi:ss
。
示例1:使用CAST函数,将TIMESTAMP类型数据
2009-07-01 16:09:00
转换为DATETIME类型。为构造TIMESTAMP类型数据,总共需要使用2次CAST函数。命令示例如下。
--返回2009-07-01 16:09:00。
select cast(cast('2009-07-01 16:09:00' as timestamp) as datetime);
示例2:使用TO_DATE函数,指定
format
参数,将TIMESTAMP类型数据
2009-07-01 16:09:00
转换为DATETIME类型。为构造TIMESTAMP类型数据,需要使用到1次CAST函数。命令示例如下。
--返回2009-07-01 16:09:00。
select to_date(cast('2009-07-01 16:09:00' as timestamp),'yyyy-mm-dd hh:mi:ss');
将DATETIME类型(格式为
yyyy-mm-dd hh:mi:ss
)的日期值转换为TIMESTAMP类型(格式为
yyyy-mm-dd hh:mi:ss.ff3
)的日期值。
使用
CAST
函数进行转换。
使用CAST函数,将DATETIME类型的日期值转换为TIMESTAMP类型。为构造DATETIME类型数据,需要使用到1次GETDATE函数。命令示例如下。
--返回2021-10-14 10:21:47.939。
select cast(getdate() as timestamp);
示例1:使用CAST函数,将DATETIME类型的日期值转换为STRING类型。为构造DATETIME类型数据,需要使用到1次GETDATE函数。命令示例如下。
--返回2021-10-14 10:21:47。
select cast(getdate() as string);
示例2:使用TO_CHAR函数,将DATETIME类型的日期值转换为指定格式的STRING类型。为构造DATETIME类型数据,需要使用到1次GETDATE函数。命令示例如下。
--返回2021-10-14 10:21:47。
select to_char (getdate(),'yyyy-mm-dd hh:mi:ss');
--返回2021-10-14。
select to_char (getdate(),'yyyy-mm-dd');
--返回2021。
select to_char (getdate(),'yyyy');