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())
我們可以看到:當插入的數據的日期范圍>對應的時間字段時,並不報錯,而且插入的數據也符合對應的字段類型。