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') |