今天总结一下日期时间如何处理,方便以后查看。
-
1 Oracle
-
1.1 日期格式参数及其含义说明
Oracle不区分大小写,所以下面参数大小写都可以
D 一周中的星期几
DAY 天的名字,使用空格填充到9个字符
DD 月中的第几天
DDD 年中的第几天
DY 天的简写名
IW ISO标准的年中的第几周
IYYY ISO标准的四位年份
YYYY 四位年份
YYY,YY,Y 年份的最后三位,两位,一位
HH 小时,按12小时计
HH24 小时,按24小时计
MI 分
SS 秒
MM 月
Mon 月份的简写
Month 月份的全名
W 该月的第几个星期
WW 年中的第几个星期
注意:表示12小时制(HH)时,时间范围为1-12,对应的时间参考挂钟时针的指向。24小时制时,时间范围是0-23
-
1.2 日期加减操作
sysdate+(5/24/60/60) 在系统时间基础上延迟5秒
sysdate+5/24/60 在系统时间基础上延迟5分钟
sysdate+5/24 在系统时间基础上延迟5小时
sysdate+5 在系统时间基础上延迟5天
add_months(sysdate,-5) 在系统时间基础上延迟5月
add_months(sysdate,-5*12) 在系统时间基础上延迟5年
当前时间减去7分钟的时间
select sysdate,sysdate - interval '7' MINUTE FROM dual;
当前时间减去7小时的时间
select sysdate,sysdate - interval '7' HOUR FROM dual;
当前时间减去7天的时间
select sysdate,sysdate - interval '7' DAY FROM dual;
当前时间减去7月的时间
select sysdate,sysdate - interval '7' MONTH FROM dual;
当前时间减去7年的时间
select sysdate,sysdate - interval '7' YEAR FROM dual;
时间间隔乘以一个数字
select sysdate,sysdate - 8*interval '2' HOUR FROM dual;
date类型做减法,单位是天,分别使用*24、*24*60、*24*60*60转换成时、分、秒
-
1.3 日期和字符串互转
to_char将日期转换成字符串
select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual
to_date将字符串转成日期
select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from dual
-
1.4 查看当前数据库时间
select sysdate from dual;
-
1.5 trunc函数处理日期
trunc(sysdate,'yyyy') --返回当年第一天.
trunc(sysdate,'mm') --返回当月第一天.
trunc(sysdate,'d') --返回当前星期的第一天.
select trunc(sysdate,'YYYY')from dual;
select trunc(sysdate,'MM')from dual;
select trunc(sysdate,'D')from dual;
-
2 JAVA
-
2.1 日期和时间模式字符串
这些A—Z,a—z这些字母(不被单引号包围的)会被特殊处理替换为对应的日期时间,其他的字符串还是原样输出。
日期和时间模式(注意大小写,代表的含义是不同的)
yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
-
2.2 JAVA API
菜鸟教程
-
3 JavaScript API
菜鸟教程
4 mysql
4.1 日期格式
说明符 | 描述 |
---|---|
%a | 缩写的工作日名称 ( Sun .. Sat ) |
%b | 缩写的月份名称 ( Jan .. Dec ) |
%c | 月份,数字 ( 0 .. 12 ) |
%D | 带有英文后缀 ( 0th , 1st , 2nd , 3rd , ...)的月份中的第几天 |
%d | 月份中的第几天,数字 ( 00 .. 31 ) |
%e | 月份中的第几天,数字 ( 0 .. 31 ) |
%f | 微秒 ( 000000 .. 999999 ) |
%H | 小时 ( 00 .. 23 ) |
%h | 小时 ( 01 .. 12 ) |
%I | 小时 ( 01 .. 12 ) |
%i | 分钟,数字 ( 00 .. 59 ) |
%j | 一年中的某一天 ( 001 .. 366 ) |
%k | 小时 ( 0 .. 23 ) |
%l | 小时 ( 1 .. 12 ) |
%M | 月份名称 ( January .. December ) |
%m | 月份,数字 ( 00 .. 12 ) |
%p | AM 或者 PM |
%r | 时间,12 小时制(hh:mm:ss 后跟 AM 或PM ) |
%S | 秒 ( 00 .. 59 ) |
%s | 秒 ( 00 .. 59 ) |
%T | 时间,24 小时制 ( hh:mm:ss ) |
%U | 周 ( 00 .. 53 ),其中星期日是一周的第一天; WEEK()模式 0 |
%u | 周 ( 00 .. 53 ),其中星期一是一周的第一天; WEEK()模式一 |
%V | 周 ( 01 .. 53 ),其中星期日是一周的第一天; WEEK()模式2;与 %X |
%v | 周 ( 01 .. 53 ),其中星期一是一周的第一天; WEEK()模式3;与 %x |
%W | 工作日名称 ( Sunday .. Saturday ) |
%w | 星期几(0 =星期日.. 6 =星期六) |
%X | 周的年份,其中星期日是一周的第一天,数字,四位数字;与%V |
%x | 一周的年份,其中星期一是一周的第一天,数字,四位数字;与%v |
%Y | 年份,数字,四位数字 |
%y | 年份,数字(两位数) |
%% | 一个文字% 字符 |
% | x , 对于上面未列出的任何 “ x ” |
4.2 日期函数
名称 | 描述 |
CURDATE() | 返回当前日期 |
CURRENT_DATE(), CURRENT_DATE | CURDATE() 的同义词 |
CURRENT_TIME(), CURRENT_TIME | CURTIME() 的同义词 |
CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP | NOW() 的同义词 |
CURTIME() | 返回当前时间 |
DATE() | 提取日期或日期时间表达式的日期部分 |
DATE_ADD() | 将时间值(间隔)添加到日期值 |
DATE_FORMAT() | 指定日期格式 |
STR_TO_DATE() | 将字符串转换为日期 |
更多函数参考MySQL :: MySQL 5.7 Reference Manual :: 12.7 Date and Time Functions