暂时用下面四个日期函数插入时间
如:insert into Stu(time) values (now());
Mysql的时间函数 | 描述 | 对应的Mysql的时间类型 |
---|---|---|
now()/sysdate() | NOW()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间 | date/time/dateTime/timeStamp/year |
curDate()/current_date() | 返回当前的日期YYYY-MM-DD | date/year |
curTime()/current_time() | 返回当前的时间HH:MM:SS | time |
日期函数
now()/curtime()/curdate()
这些函数的值是会随着时区的不同而获得到不同的值的.
1、now()/sysdate()返回当前日期和时间
NOW()函数和sysdate()都是以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中。
select now(); select sysdate();
返回2023-02-16 11:26:05 和 2023-02-16 11:26:05
2、date()从日期或日期时间表达式中提取日期值
SELECT DATE("2017-06-15 11:11:16");
---- 返回2017-06-15
3、year(d)返回日期值 d 的年
select YEAR("2023:02:16");
--返回2023
4、monte(d)返回日期值 d 的月
select MONTH("2023:02:16");
--- 返回 2
5、day(d)返回日期值 d 的天
SELECT DAY("2017-06-15");
---- 返回15
6、curDate()/current_date()返回当前日期
SELECT CURDATE();
SELECT CURRENT_DATE();
---- 返回2019-02-19
7、current_time()/curTime()返回当前时间
SELECT CURRENT_TIME();
---- 返回11:40:45
8、current_timeStamp()返回当前日期和时间
SELECT CURRENT_TIMESTAMP();
---- 返回2019-02-19 11:41:32
9、addDate(d,n)计算起始日期 d 加上 n 天的日期
SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY);
---- 返回2017-06-25
10、addTime(t,n)时间 t 加上 n 秒的时间
SELECT ADDTIME('2011-11-11 11:11:11', 5);
---- 返回2011-11-11 11:11:16
11、dateDiff(d1,d2)计算日期 d1->d2 之间相隔的天数
SELECT DATEDIFF('2001-01-01','2001-02-02');
---- 返回-32
12、date_format按表达式 f的要求显示日期 d
SELECT DATE_FORMAT('2011.11.11 11:11:11','%Y-%m-%d %r');
---- 返回2011-11-11 11:11:11 AM
13、dayName(d)返回日期 d 是星期几,如 Monday,Tuesday
SELECT DAYNAME('2011-11-11 11:11:11');
---- 返回Friday
14、dayOfMonth(d)计算日期 d 是本月的第几天
SELECT DAYOFMONTH('2011-11-11 11:11:11');
---- 返回11
15、dayOfWeek(d)日期 d 今天是星期几,1 星期日,2 星期一,以此类推
SELECT DAYOFWEEK('2011-11-11 11:11:11');
---- 返回6
16、dayOfYear(d)计算日期 d 是本年的第几天
SELECT DAYOFYEAR('2011-11-11 11:11:11');
---- 返回315
17、extract(type FROM d)从日期 d 中获取指定的值,type 指定返回的值
type可取值为:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
SELECT EXTRACT(MINUTE FROM '2011-12-13 14:15:16');
---- 返回15
18、unix_TimeStamp()得到时间戳
SELECT UNIX_TIMESTAMP('2019-2-19');
SELECT UNIX_TIMESTAMP(expression);
---- 返回1550505600
19、from_unixtime()时间戳转日期
SELECT FROM_UNIXTIME(1550505600);
---- 返回2019-02-19 00:00:00
SELECT FROM_UNIXTIME(1550505600, '%Y-%m-%d');
---- 返回2019-02-19