MySQL日期取值与转换

论坛 期权论坛 脚本     
匿名技术用户   2021-1-5 03:48   16   0

-- DATE():获取日期或日期时间表达式的日期部分

SELECT DATE('2017-06-15'),DATE('2017-06-15 12:12:12'),DATE(now())

-- time() 获取日期或日期时间表达式的时间部分

SELECT time('2012-12-12 12:12:12'),time('12:12:12'),time(now())

-- --------------------------------------------------------------------------年份
-- YEAR(d) 返回年份

SELECT YEAR("2017-06-15"),YEAR(CURDATE())

-- --------------------------------------------------------------------------季度
-- QUARTER(d) 返回季度数字

SELECT QUARTER('2011-11-11 11:11:11'),QUARTER(CURDATE())

-- --------------------------------------------------------------------------月份
-- MONTHNAME(d) 返回英文月份名称

SELECT MONTHNAME('2011-11-11 11:11:11'),MONTHNAME(CURDATE())

-- MONTH(d) 返回月份数字

SELECT MONTH('2011-05-11 11:11:11'),MONTH(CURDATE())

-- --------------------------------------------------------------------------星期
-- DAYNAME(d) 返回英文的星期

SELECT DAYNAME('2011-11-11 11:11:11'),DAYNAME(CURDATE())

-- WEEK(d) 计算日期 d 是本年的第几个星期,范围是 0 到 53

SELECT WEEK('2011-1-1 11:11:11'),week(CURDATE())

-- WEEKDAY(d) 日期 d 是星期几,0 表示星期一,1 表示星期二

SELECT WEEKDAY('2017-06-15'),WEEKDAY(CURDATE())

-- WEEKOFYEAR(d) 返回日期(1-53)的日历周

SELECT WEEKOFYEAR('2011-1-1 11:11:11'),WEEKOFYEAR(CURDATE())

-- YEARWEEK(date, mode) 返回年份和星期,mode 中 0 表示周天,1表示周一,以此类推

SELECT YEARWEEK("2017-06-15"),YEARWEEK(CURDATE()),YEARWEEK(CURDATE(),6)

-- --------------------------------------------------------------------------天
-- DAYOFYEAR(d) 返回本年的第几天

SELECT DAYOFYEAR('2011-11-11 11:11:11'),DAYOFYEAR(CURDATE())

-- DAY(d)、DAYOFMONTH() 返回日期值 d 的日期部分

select DAY('2017-06-05'),DAYOFMONTH('2017-06-05'),DAY(now()),DAYOFMONTH(now())

-- DAYOFWEEK(d) 返回当周的第几天,注意1为周日,7为周六,周日为一周的开始

SELECT DAYOFWEEK('2011-11-11 11:11:11'),DAYOFWEEK(CURDATE())

-- --------------------------------------------------------------------------小时
-- HOUR() 返回小时值

select HOUR(now()),HOUR('14:28:25')

-- --------------------------------------------------------------------------分钟
-- MINUTE() 返回分钟数

SELECT MINUTE('1:2:03'),MINUTE(now())

-- --------------------------------------------------------------------------秒
-- SECOND() 返回秒数字

SELECT SECOND('1:2:3'),SECOND(now())

-- --------------------------------------------------------------------------微秒
-- MICROSECOND() 返回微妙数

SELECT MICROSECOND('2017-06-20 09:34:00.000023'),MICROSECOND(now()),MICROSECOND('09:34:00.000023')

-- --------------------------------------------------------------------------函数

-- EXTRACT(type FROM d) 从日期 d 中获取指定的值,type 指定返回的值。type可取值为:

MICROSECOND微妙
SECOND
MINUTE分钟
HOUR小时(24)
DAY
WEEK年周
MONTH月份
QUARTER季度
YEAR年份
SECOND_MICROSECOND秒-微妙
MINUTE_MICROSECOND分钟-秒-微妙
MINUTE_SECOND分钟-秒
HOUR_MICROSECOND小时(24)-分钟-秒-微妙
HOUR_SECOND小时(24)-分钟-秒
HOUR_MINUTE小时(24)-分钟
DAY_MICROSECOND小时(24)-分钟-秒-微妙
DAY_SECOND小时(24)-分钟-秒
DAY_MINUTE小时(24)-分钟
DAY_HOUR小时(24)
YEAR_MONTH年-月

LAST_DAY(d) 返回给给定日期的那一月份的最后一天

SELECT LAST_DAY("2017-06-20"),LAST_DAY(CURDATE()),LAST_DAY(now())

MAKEDATE(year, day-of-year) 基于给定参数年份 year 和所在年中的天数序号 day-of-year 返回一个日期

SELECT MAKEDATE(2017, 3);

MAKETIME(hour, minute, second) 组合时间,参数分别为小时、分钟、秒

SELECT MAKETIME(11, 35, 4);

SEC_TO_TIME(s) 将以秒为单位的时间 s 转换为时分秒的格式

SELECT SEC_TO_TIME(4320)

TIME_TO_SEC(t) 将时间 t 转换为秒

SELECT TIME_TO_SEC('1:12:00')

TIMESTAMP(expression, interval) 单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和

SELECT TIMESTAMP('2017-07-23',  '13:10:11'),TIMESTAMP('2017:07:23'),TIMESTAMP(CURDATE())

-- --------------------------------------------------------------------------其他

-- UNIX_TIMESTAMP() 返回Unix时间戳
select UNIX_TIMESTAMP(now()-1),UNIX_TIMESTAMP()

-- UTC_DATE() 返回当前UTC日期
select UTC_DATE()

-- UTC_TIME() 返回当前UTC时间
select UTC_TIME()

-- UTC_TIMESTAMP() 返回当前UTC日期和时间
select UTC_TIMESTAMP()

-- FROM_UNIXTIME() 将Unix时间戳格式化为日期

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP