关系数据库的日期时间字段及相关函数(附官方文档)

 mysql中文文档

postgresql中文文档

--mysql
--日期格式化
DATE_FORMAT(SYSDATE(),'%Y-%m-%d %H:%i:%s')
--获取时间中的日期部分
select date(now())
--字符串转日期
select str_to_date('2017-10-29', '%Y-%m-%d %H:%i:%S');

--postgresql
--日期格式化
to_char(now(),'YYYY-MM-DD HH:MI:SS ')
--字符串转日期,结果是date格式
select to_date('2022-10-08','yyyy-mm-dd hh24:MI:SS')
--字符串转时间戳,结果是timestamp格式
to_timestamp('2022-10-08','yyyy-mm-dd hh24:MI:SS')

--SQLserver
--日期转换
--data_type(length)目标数据类型
--data_to_be_converted源数据
--style,需要转成的格式
CONVERT(data_type(length),data_to_be_converted,style)
--convert不仅可以把日期转字符串,也可以把字符串转时间
--日期转字符串
CONVERT(varchar(10),GETDATE() ,120)
--字符串转日期
select CONVERT(datetime,'2022-10-01 10:08:00',120)

--Oracle
to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')
--1.如果左边是日期,右边是字符串,可以进行比较,则无需转换
--2.如果左边是日期,右边是字符串,不能比较,尽量把字符串转成日期来比较,这样效率比较高
--3.如果左边是字符串,右边也是字符串,则将字符串转成相同格式,再进行比较
--4.因此最重要的就是要知道左边字段的格式,特别当左边是字符串格式的时间时,一定要知道格式才能进行转换

 

数据库数据类型是否支持直接与'2017-10-29'比较
MySQL date
MySQL datetime
MySQL timestamp
MySQL varchar str_to_date('2017-10-29', '%Y-%m-%d %H:%i:%S')
SQLserver datetime
SQLserver varchar CONVERT(varchar(10),GETDATE() - 2,120)
Oracle timestamp timestamp>=to_date('2020-11-24','yyyy-mm-dd');
Oracle varchar to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')>=to_date('2020-11-24','yyyy-mm-dd');
postgresql timestamp
postgresql varchar(yyyy-MM-dd HH:mm:ss)
postgresql varchar select to_date('2022-10-08','yyyy-mm-dd hh24:MI:SS')
posted @ 2023-01-13 14:50  Mars.wang  阅读(99)  评论(0)    收藏  举报