SQL中如何将数字型转换为日期型

SQL中如何将数字型转换为日期型,第1张

平时为了方便存储和查询,通常会选择将时间存储为毫秒或者秒的形式。但是页面显示的时候很不直观,需要将整型数字转化成日期格式,转化方式包括下面几种:

1、秒数与Date之间的转换:selectfrom_unixtime(1388776825)

还可以定义时间格式,用法如下:

SELECTFROM_UNIXTIME(1388776825,'%Y-%m-%d%H:%m:%s')

结果:2014-01-0403:01:25

SELECT FROM_UNIXTIME(1388776825,'%Y年%m月%d')

结果:2014年1月4

2、将秒数转为Date:SELECTUNIX_TIMESTAMP('2014-03-2310:10:40')

如果想逆向转换,可以通过unix_timestamp()函数反向转换。用法如下:

SELECTUNIX_TIMESTAMP()//获取当前时间的秒数

SELECTUNIX_TIMESTAMP('2014-03-2310:10:40')//获取指定日期格式的秒数

SELECTUNIX_TIMESTAMP('2014-03-23')//获取指定日期格式的秒数

扩展资料:

一、date型换int型

SELECTUNIX_TIMESTAMP(‘2017-9-2213:54:45’)

二、int型转date型

SELECTFROM_UNIXTIME(1506059685)

需要注意的是,一个int值转换为DateTime需要从1970年1月1日0点0分0秒开始,但是必须明确,这个时间是标准时间,而不是北京时间。

数据库中数据的时间都是以标准时间为准绳的。所以必须转换到当前时间,中国是+8,可以简单的调用ToLocalTime达到效果。

以Oracle为例,具体方法如下:

SQL>alter session set nls_date_format = ‘yyyy-mm-dd hh24:mi:ss’

将当前会话的时间格式修改为这种格式:2003-01-28 15:23:38,即四位年-两位月-两位日,空格,24小时的制的小时:分钟:秒。这种修改方法,只对当前会话有效。

在注册表/hkey_local_machine/software/oracle/home0主键中增加一个字串(8i版本),字串名为nls_date_format,字串的值为你希望定义的时间格式,如:yyyy-mm-dd hh24:mi:ss ,然后重新启动

sql*plus。这种修改方法,对sql*plus窗口有效,即不论你打开多少个sql*plus窗口,缺省的都是这种时间格式。修改服务器端的注册表无效,只有修改客户端的注册表才有效。以上方法可以参考一下。

Year(@time), Month(@time) 2 个函数即可。

然后用它们来组装字符串也就简单了。

CONVERT(VarChar(7), @time, 120)会得到YYYY-MM。调用。

用转成字符串,,但此时他已经不是时间类型。

CONVERT(char(7),"你的时间例",120)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6662790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存