6.1 获取当前时间
1、获取年月日时分秒
now 函数:获取当前时间信息
sysdate 函数:
区别:
now() 在执行开始时值就得到了;
sysdate() 在函数执行时动态得到值。
eg:
select now(), sleep(3),now();
select sysdate(), sleep(3) , sysdate();
注意:默认的标准时间格式为:年月日用横杠分隔;时分秒用冒号分隔。
2、获取年月日
-
current_date 函数
简写:curdate()
3、获取时分秒
-
current_time 函数
简写:curtime()
补充:获取毫秒
6.2 时间格式的转换
1、字符串转换为日期格式
-
str_to_date (时间字符串,字符串日期格式) :能够把字符串转换为标准日期格式。
注意,日期的格式是区分大小写的。下图中加粗为常用的格式。
select str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09
select str_to_date('08/09/08' , '%m/%d/%y'); -- 2008-08-09
select str_to_date('08.09.2008', '%m.%d.%Y'); -- 2008-08-09
select str_to_date('08:09:30', '%h:%i:%s'); -- 08:09:30
select str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); --2008-08-09 08:09:30
举例
2、日期转换为特殊字符串形式
-
date_format (日期,字符串格式):能够把一个日期转换为各种样式的字符串
举例
6.3 提取时间信息
1、直接用year、month 等函数提取
2、使用extract函数提取(不推荐)
简单了解一下即可。
语法:extract (日期形式 from 日期内容) 函数
举例
6.4 日期的运算
1、现有日期进行偏移(推荐)
- date_sub(日期,要减少偏移的间隔)
date_sub(date,INTERVAL expr type)
其中,expr 是要偏移的数值。
- date_add(日期,要增加偏移的距离)
date_add(date,INTERVAL expr type)
举例:
eg:
select date_add('2008-08-08 10:12:33', interval '01:10:30' hour_second);
--偏移时间到秒,1小时10分30秒:2008-08-08 11:23:03
select date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second);
--偏移天到秒,1天1小时1分1秒:1997-12-30 22:58:59
2、两个日期计算天数差
- date_diff(time1,time2):返回两个日期之间(time1-time2)的天数。
eg:
select datediff('2008-08-08','2008-08-01');-- 相差:7 天
3、两个日期计算时间差
- timediff(time1,time2):两个日期相减 time1 - time2,返回 time 差值。
注意:timediff(time1,time2) 函数的两个参数类型必须相同。
eg:
select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 相差时间:08:08:08
select timediff('2009-08-09 08:08:08', '2008-08-08 00:00:00'); --相差时间:838:59:59
4、两个日期得到指定差(推荐)
- timestampdiff(unit,begin,end):返回end-begin的结果,其中begin和end是date或datetime格式
-
timestampdiff(year,birth,now()) 计算生日 返回两个日期之间的年份,未过生日减一
举例:
网友评论