Mysql date,datetime的区别以及相互转换

参考:https://blog.csdn.net/a3025056/article/details/62885104/

在数据库中一直有这三个时间类型有点搞不太清楚。

今天就来说一下之间的区别,其实是特别好理解的。

date:你直接就可以理解为2017-3-21 不带时分秒的

datetime:相反,则是带时分秒的 

timestamp:时间戳 很好理解(1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。)

其中有提到时间范围的问题:

时间范围

date -- > '1000-01-01' to '9999-12-31'.

datetime --> '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.

timestamp -- > '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC

常用日期函数以及转换

1、获取当前日期:
 CURRENT_DATE()或者CURDATE()

2、获取当前时间:
CURRENT_TIME()或者CURTIME()

3、获取当前日期和时间
NOW()或者CURRENT_TIMESTAMP()

4、linux/unix时间戳和mysql时间日期类型之间的转换:
UNIX_TIMESTAMP(NOW())                 //将mysql的datetime转换成linux/unix的时间戳;日期时间
UNIX_TIMESTAMP(DATE(NOW()))          //将mysql的date转换成linux/unix的日期。
UNIX_TIMESTAMP(TIME(NOW()))          //将mysql的time转换成linux/unix的时间。(用问题)
FROM_UNIXTIME(time_t)                //将unix的时间戳转换成mysql的datetime;日期时间
DATE(FROM_UNIXTIME(time_t))          //日期
TIME(FROM_UNIXTIME(time_t))          //时间

原文地址:https://www.cnblogs.com/yingyigongzi/p/9297866.html