mysql+两天前+函数_Mysql 日期函数

一、MySQL 获得当前日期时间 函数

1.获取当前日期+时间(date + time):

now()

sysdate()

sysdate()和now()的区别在于sysdate() 在函数执行时动态得到值, now() 在执行开始时值就得到了,看下面的例子就明白了:

mysql> select sysdate(),sleep(3),sysdate();

+---------------------+----------+---------------------+

| sysdate()           | sleep(3) | sysdate()           |

+---------------------+----------+---------------------+

| 2013-12-30 16:12:36 |        0 | 2013-12-30 16:12:39 |

+---------------------+----------+---------------------+

1 row in set (3.03 sec)

mysql> select now(),sleep(3),now();

+---------------------+----------+---------------------+

| now()               | sleep(3) | now()               |

+---------------------+----------+---------------------+

| 2013-12-30 16:12:51 |        0 | 2013-12-30 16:12:51 |

+---------------------+----------+---------------------+

1 row in set (3.00 sec)

由结果可知,sysdate() 函数两次得到的时间值相差 3 秒,而now() 函数两次的时间值是相同的。

2.获取当前日期:

curdate()

还有两个相同作用函数currtme_date()和current_date

3.获取当前时间:

curtime()

还有两个相同作用函数current_time()和current_time

4.获取当前 UTC 日期时间函数:

utc_date()

utc_time()

utc_timestamp()

二.日期时间 Extract(选取)函数

year(date)             #返回date的年份,范围是1000到9999

month(date)         #返回date的月份,范围是1到12

day(date)              #返回date的日期,范围是1到31

hour(time)            #返回date的小时,范围是0到23

minute(time)        #返回date的分钟,范围是0到59

second(time)       #返回date的秒钟,范围是0到59

quarter(date)       #返回date所属的季度,范围是1到4

WEEK(date,[0/1])             #返回date为一年当中的第几周,默认从0开始计数,范围是0-52 ; 如果带参数1,则表示从1开始计数,范围是1-53

WEEKOFYEAR(date)      #返回date为年度当中的第几周(自然周数),范围是1-52,如果12月最后几天和1.1在同一周,则该周内都返回值 1

YEARWEEK(date)           #返回date为年度当中的Year+第几周,周范围是01-52,如果12月最后几天和1.1在同一周,则该周内都周值都为 52,

WEEKDAY(date)             #返回date为所在星期的第几天,范围是0-6(0=星期1...6=星期天)

DAYOFWEEK(date)        #返回date为所在星期的第几天,范围是1-7(1=星期天...7=星期六)

DAYOFMONTH(date)     #返回date为所在月份的第几天,范围1-31

DAYOFYEAR(date)         #返回date为所在年份的第几天,范围1-366

DAYNAME(date)             #返回date的星期名称Monday...

MONTHNAME(date)      #返回date的月份名称January...

LAST_DAY(date)           #返回date所在月份的最后一天

三.日期计算函数

1.为日期增加一个时间间隔

DATE_ADD(date,INTERVAL expr type)

type值可以为YEAR、MONTH、DAY、WEEK、QUARTER、HOUR、MINUTE、SECOND、MICROSECOND、SECOND_MICROSECOND、MINUTE_MICROSECOND、MINUTE_SECOND、HOUR_MICROSECOND、HOUR_SECOND、HOUR_MINUTE、DAY_MICROSECOND、DAY_SECOND、DAY_MINUTE、DAY_HOUR、YEAR_MONTH

例:select  date_add(now(),interval 10 day);

2.为日期减去一个时间间隔

DATE_SUB(date,INTERVAL expr type)

type值同date_add函数一要

例:select  date_sub(now(),interval 1 week);

3.日期、时间相减函数: DATEDIFF(date1,date2)             #返回date1-date2相关的天数

TIMEDIFF(date1,date2)              #返回time1-time2相差的时间,返回格式为hh:mm:ss

TIMESTAMPDIFF( type,date1,date2)

#返回date2-date1相差的指定unit,返回格式是数值型,type可以是:FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, or YEAR。

四.日期、时间格式转换函数

1.日期时间转字符:

DATE_FORMAT(date,format) 根据format字符串格式化date值。下列修饰符可以被用在format字符串中:

%M 月名字(January……December)

%W 星期名字(Sunday……Saturday)

%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)

%Y 年, 数字, 4 位

%y 年, 数字, 2 位

%a 缩写的星期名字(Sun……Sat)

%d 月份中的天数, 数字(00……31)

%e 月份中的天数, 数字(0……31)

%m 月, 数字(01……12)

%c 月, 数字(1……12)

%b 缩写的月份名字(Jan……Dec)

%j 一年中的天数(001……366)

%H 小时(00……23)

%k 小时(0……23)

%h 小时(01……12)

%I 小时(01……12) (大写 i)

%l小时(1……12)   (小写L)

%i 分钟, 数字(00……59)

%r 时间,12 小时(hh:mm:ss [AP]M)

%T 时间,24 小时(hh:mm:ss)

%S 秒(00……59)

%s 秒(00……59)

%p AM或PM

%w 一个星期中的天数(0=Sunday ……6=Saturday )

%U 星期(0……52), 这里星期天是星期的第一天

%u 星期(0……52), 这里星期一是星期的第一天

%% 一个文字“%”。

例:

SELECT DATE_FORMAT(now(),'%Y%m%d');                # 20131230

2.字符串转换为日期函数:

str_to_date(str, format)

format值同上

例:

SELECT STR_TO_DATE('10/15/2013', '%m/%d/%Y');           # 2013-10-15

SELECT STR_TO_DATE('20131015170201', '%Y%m%d %H%i%s');           #2013-10-15 17:02:01

3.(时间、秒)转换函数:

SELECT TIME_TO_SEC('00:02:10');      #  130

SELECT SEC_TO_TIME(100);                # 00:01:40

4.(日期、天数)转换函数:

SELECT TO_DAYS('0000-01-01');          # 1

SELECT TO_DAYS(NOW());                    # 735597

SELECT FROM_DAYS(366);                   # 0001-01-01

SELECT FROM_DAYS(735550);            #2013-11-13

5.获取国家地区时间格式函数: get_format(date|time|datetime, 'eur'|'usa'|'jis'|'iso'|'internal') 例: select get_format(date,'usa') ;               # '%m.%d.%Y' select get_format(datetime,'usa') ;       # '%Y-%m-%d %H.%i.%s' select get_format(time,'internal') ;        # '%H%i%s'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值