1.获取系统当前日期+时间
方式一:now()
方式二:sysdate()
以上两种方式,对应日期类型:datetime。
方式三:CURRENT_TIMESTAMP()/CURRENT_TIMESTAMP
对应日期类型:timestamp。
方式四:to_days()
说明:这四种方式,对于大小写都不敏感。
2.获取系统当前日期
CURRENT_DATE()/CURRENT_DATE
对应日期类型:date。
3.获取系统当前时间
CURRENT_TIME()/CURRENT_TIME
对应日期类型:time。
4.获取系统当前年份
year(date)
5.获取系统当前月份
MONTH(NOW())
或者
DATE_FORMAT(CURRENT_DATE(),'%Y%m')
6.获取系统当前季度
QUARTER(NOW())
7.获取系统当前周
YEARWEEK(now())
8.获取系统当前天数
DAY(date)
8.mysql常用日期类型
以java格式化日期的语法为例,进行说明
datetime(推荐使用):日期+时间,表现形式为:yyyy-MM-dd HH:mm:ss,占用8个字节;
当指定位数时,表示毫秒数的保留位数,如:datetime(6),代表的就是6位毫秒数字。
date:日期,表现形式为:yyyy-MM-dd
time:时间,表现形式为:HH:mm:ss
timestamp:时间戳,表现形式为:yyyy-MM-dd HH:mm:ss,一般占用4个字节,其实际存储的内容为‘1970-01-01 00:00:00
’到现在的毫秒数;
在 MySQL 中,由于类型 TIMESTAMP
占用 4 个字节,因此其存储的时间上限只能到‘2038-01-19 03:14:07
’;
当带有毫秒数时,占用7个字节,同样地,当指定位数时,表示毫秒数的保留位数,如:timestamp(6),代表的就是6位毫秒数字;
可以带有时区属性。
year:年份,表现形式为:yyyy
说明:
以前的展现形式,在Navicat当中的日期类型的默认展现形式,日期类型的显示形式,我们可以进行自主设置或修改。
另外,大范围的日期类型,可以插进小范围的日期类型当中,并且,只保留小类型的日期格式。
举例说明:
创建一个存储日期类型的表;
查看代码
CREATE TABLE `date_demo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date1` date DEFAULT NULL,
`datetime1` datetime DEFAULT NULL,
`time1` time DEFAULT NULL,
`timestamp1` timestamp NULL DEFAULT NULL,
`year1` year(4) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
insert into date_demo (date1,datetime1,time1,timestamp1,year1) values (now(), sysdate(),CURRENT_TIME(),CURRENT_TIMESTAMP(),CURRENT_DATE())
我们可以看到:当插入的数据的日期范围>对应的时间字段时,并不报错,而且插入的数据也符合对应的字段类型。
写在最后
哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!
作者:Marydon
标签:类型,DEFAULT,CURRENT,获取,日期,当前,mysql,date,NULL From: https://blog.51cto.com/u_15964717/6055560