Mysql日期与时间类型及函数
1.Mysql日期和时间类型:
有5种表示时间值的日期和时间类型,分别为、DATE,TIME,YEAR,DATETIME,TIMESTAMP。
DateTime和TimeStamp都是年月日时分秒,为什么还有这两个类型呢?
1、精度:DateTime和TimeStamp都可以精确到毫秒,但是用的很少,一般精确到毫秒都是用Timestamp
2、DateTime和TimeStamp最大的区别只是用的场景不同,如果你的应用 是用于不同时区(就是国内和国外同时使用),这时候如果用dateTime就会出现各种各样的问题,但是如果使用TimeStamp就不会出现这种时差的问题。
2.Mysql日期时间函数
(1).获取当前时间戳函数:now() 或 current_timestamp 或 current_timestamp() 或sysdate()
now(),current_timestamp() , current_timestamp是相同的.
sysdate()函数返回的是执行到当前函数时的时间,而now()返回的是执行SQL语句时的时间。以下执行结果可以发现:结果会发现最后一个SYSDATE()显示的时间会较其他时间大3秒。
注:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。 在实际应用上, 它可以使用在包括电子商务、 金融活动的各个方面, 尤其可以用来支撑公开密钥基础设施的 “不可否认” 服务。
(2)CURDATE() :返回当前的日期
(3)CURTIME() :返回当前日期
2. 时间与秒转换函数:time_to_sec(time),sec_to_time(seconds)
3.day()函数-- 提取指定日期的天(日)
4.date()函数--提取日期或日期/时间表达式的日期部分
5.year()函数 - 返回日期值的年份部分。
6.EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
7.datediff()函数 - 计算两个DATE值之间的天数,datediff(date1,date2) :date1-date2
8.date_add()函数 - 将时间间隔添加到日期值
9.timediff()函数 - 计算两个TIME或DATETIME值之间的差值
10.timestampdiff()函数 - 计算两个DATE或DATETIME值之间的差值 datetime2-datetime1
TIMESTAMPDIFF(interval,datetime1,datetime2),比较的单位interval可以为以下数值
- FRAC_SECOND。表示间隔是毫秒
- SECOND。秒
- MINUTE。分钟
- HOUR。小时
- DAY。天
- WEEK。星期
- MONTH。月
- QUARTER。季度
- YEAR。年
11.TIMESTAMPADD 将时间间隔加到日期
12. date_format()函数 - 根据指定的日期格式格式化日期值.DATE_FORMAT(date,format)
13. date_sub()函数 - 从日期值中减去指定的时间间隔
14.str_to_date()函数 - 将字符串转换为基于指定格式的日期和时间值。str_to_date(str,format)
SELECT STR_TO_DATE('21,5,2018','%d,%m,%Y');