SQL中如何将数字型转换为日期型
求指教,谢谢! 展开
平时为了方便存储和查询,通常会选择将时间存储为毫秒或者秒的形式。但是页面显示的时候很不直观,需要将整型数字转化成日期格式,转化方式包括下面几种:
1、秒数与Date之间的转换:select from_unixtime(1388776825);
还可以定义时间格式,用法如下:
SELECT FROM_UNIXTIME( 1388776825, '%Y-%m-%d %H:%m:%s');
结果:2014-01-04 03:01:25
SELECT FROM_UNIXTIME( 1388776825, '%Y年%m月%d' )
结果:2014年1月4
2、将秒数转为Date:SELECT UNIX_TIMESTAMP('2014-03-23 10:10:40')
如果想逆向转换,可以通过unix_timestamp()函数反向转换。用法如下:
SELECT UNIX_TIMESTAMP() ;//获取当前时间的秒数
SELECT UNIX_TIMESTAMP('2014-03-23 10:10:40') ; //获取指定日期格式的秒数
SELECT UNIX_TIMESTAMP('2014-03-23') ; //获取指定日期格式的秒数
扩展资料:
一、date型换int型
SELECT UNIX_TIMESTAMP(‘2017-9-22 13:54:45’)
二、int型转date型
SELECT FROM_UNIXTIME(1506059685)
需要注意的是,一个int值转换为DateTime 需要从1970年1月1日0点0分0秒开始,但是必须明确,这个时间是标准时间,而不是北京时间。
数据库中数据的时间都是以标准时间为准绳的。所以必须转换到当前时间, 中国是+8 ,可以简单的调用ToLocalTime达到效果。
不知道你什么数据库,给出sqlserver的
CREATE TABLE test(date VARCHAR(20))
INSERT INTO dbo.test
( date )
VALUES ( '20140123' -- date - varchar(20)
)
SELECT DATEADD(mm,1,CAST(date AS DATETIME))
FROM test
结果:
2014-02-23 00:00:00.000
如果是DB2的呢
db2,,,
里面有个DATE()函数,可以直接用来转你这种只到日期的
大概的语句,,没怎么用过db2
select date(字段) + 1 months
from 表
大概是这样,你可以具体查查是不是这样,,,,