mysql 获取系统当前时间的3种方式

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())

 

我们可以看到:当插入的数据的日期范围>对应的时间字段时,并不报错,而且插入的数据也符合对应的字段类型。 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

posted @ 2022-02-12 14:18  Marydon  阅读(29289)  评论(0编辑  收藏  举报