欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解MySql Date函数

程序员文章站 2024-01-16 16:43:58
下面是mysql中最重要的内建函数 函数  描述 now()   返回当前的日期和时间 now() 返回当前的日期和时间。 语...

下面是mysql中最重要的内建函数

函数  描述

now()   返回当前的日期和时间

now() 返回当前的日期和时间。
语法
now()
-- 实例
-- 下面是 select 语句:
select now(),curdate(),curtime()
结果如下所示:
now()   curdate()   curtime()
2018-06-27 14:25:34   2018-06-27 14:25:34
-- 实例
-- 下面的 sql 创建带有日期时间列(orderdate)的 "orders" 表:
create table orders
(
orderid int not null,
productname varchar(50) not null,
orderdate datetime not null default now(),
primary key (orderid)
)
-- 请注意,orderdate 列规定 now() 作为默认值。作为结果,当您向表中插入行时,当前日期和时间自动插入列中。
-- 现在,我们想要在 "orders" 表中插入一条记录:
insert into orders (productname) values ('jarlsberg cheese')
-- "orders" 表将如下所示:
orderid   productname   orderdate
1   jarlsberg cheese   2018-06-11 14:36:55

curdate()   返回当前的日期

-- curdate() 返回当前的日期。
-- 实例
-- 下面是 select 语句:
select now(),curdate(),curtime()
结果如下所示:
now()   curdate()   curtime()
2018-06-27 14:25:34   2018-06-27 14:25:34
-- 实例
-- 下面的 sql 创建带有日期时间列(orderdate)的 "orders" 表:
create table orders
(
orderid int not null,
productname varchar(50) not null,
orderdate datetime not null default curdate(),
primary key (orderid)
)
-- 请注意,orderdate 列规定 curdate() 作为默认值。作为结果,当您向表中插入行时,当前日期和时间自动插入列中。
-- 现在,我们想要在 "orders" 表中插入一条记录:
insert into orders (productname) values ('jarlsberg cheese')
-- "orders" 表将如下所示:
orderid   productname   orderdate
1   jarlsberg cheese   2018-06-11 14:36:55

curtime()   返回当前的时间

-- curtime() 返回当前的日期。
-- 实例
-- 下面是 select 语句:
select now(),curdate(),curtime()
-- 结果如下所示:
now()   curdate()   curtime()
2018-06-27 14:25:34   2018-06-27 14:25:34

date()  提取日期或日期/时间表达式的日期部分

-- date() 函数提取日期或日期/时间表达式的日期部分。
-- 实例
-- 假设我们有如下的 "orders" 表:
orderid   productname   orderdate
1   jarlsberg cheese   2018-06-27 14:53:44.657
-- 下面是 select 语句:
select productname, date(orderdate) as orderdate
from orders
where orderid=1
-- 结果如下所示:
productname   orderdate
jarlsberg cheese   2018-06-27

extract()   返回日期/时间的单独部分

-- extract() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
-- 语法
-- extract(unit from date)
-- date 参数是合法的日期表达式。unit 参数可以是下列的值:
unit 值
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
-- 实例
-- 假设我们有如下的 "orders" 表:
orderid   productname   orderdate
1   jarlsberg cheese   2018-06-2715:03:01
-- 下面是 select 语句:
select extract(year from orderdate) as orderyear,
extract(month from orderdate) as ordermonth,
extract(day from orderdate) as orderday,
from orders
where orderid=1
-- 结果如下所示:
orderyear   ordermonth   orderday
2018   06            27

date_add()  向日期添加指定的时间间隔

-- date_add() 函数向日期添加指定的时间间隔。
-- 语法
-- date_add(date,interval expr type)
-- date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
-- 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
-- 实例
-- 假设我们有如下的 "orders" 表:
orderid   productname   orderdate
1   jarlsberg cheese   2018-06-27 15:02:47
-- 现在,我们想要向 "orderdate" 添加 45 天,这样就可以找到付款日期。
-- 我们使用下面的 select 语句:
select orderid,date_add(orderdate,interval 45 day) as orderpaydate
from orders
-- 结果:
orderid   orderpaydate
1   2018-08-11 15:02:47

date_sub()  从日期减去指定的时间间隔

date_sub() 函数从日期减去指定的时间间隔。
语法
date_sub(date,interval expr type)
date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
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
实例
假设我们有如下的 "orders" 表:
orderid   productname   orderdate
  jarlsberg cheese   2018-06-27 15:02:47
现在,我们想要向 "orderdate" 减去 5 天。
我们使用下面的 select 语句:
select orderid,date_sub(orderdate,interval 5 day) as subtractdate
from orders
结果:
orderid   subtractdate
   2018-06-22 15:02:47

 datediff() 返回两个日期之间的天数

dateduff() 返回两个日期之间的天数
实例:
select datediff('2018-11-29','2018-11-30') as diffdate
结果:
diffdate
-1

date_format()   用不同的格式显示日期/时间

date_format() 用不同的格式显示日期/时间
实例:
select date_format(now(),'%b %d %y %h:%i %p');
# date_format(now(),'%b %d %y %h:%i %p')
'jun 27 2018 03:12 pm'
select date_format(now(),'%m-%d-%y');
# date_format(now(),'%m-%d-%y')
'06-27-2018'
select date_format(now(),'%d %b %y');
# date_format(now(),'%d %b %y')
'27 jun 18'
select date_format(now(),'%d %b %y %t:%f');
# date_format(now(),'%d %b %y %t:%f')
'27 jun 2018 15:15:44:000000'
可以使用的格式有:
格式   描述
%a   缩写星期名
%b   缩写月名
%c   月,数值
%d   带有英文前缀的月中的天
%d   月的天,数值(00-31)
%e   月的天,数值(0-31)
%f   微秒
%h   小时(00-23)
%h   小时(01-12)
%i   小时(01-12)
%i   分钟,数值(00-59)
%j   年的天(001-366)
%k   小时(0-23)
%l   小时(1-12)
%m   月名
%m   月,数值(00-12)
%p   am 或 pm
%r   时间,12-小时(hh:mm:ss am 或 pm)
%s   秒(00-59)
%s   秒(00-59)
%t   时间, 24-小时(hh:mm:ss)
%u   周(00-53)星期日是一周的第一天
%u   周(00-53)星期一是一周的第一天
%v   周(01-53)星期日是一周的第一天,与 %x 使用
%v   周(01-53)星期一是一周的第一天,与 %x 使用
%w   星期名
%w   周的天(0=星期日, 6=星期六)
%x   年,其中的星期日是周的第一天,4 位,与 %v 使用
%x   年,其中的星期一是周的第一天,4 位,与 %v 使用
%y   年,4 位
%y   年,2 位

 下面是数据库中存储日期的数据类型

date - 格式:yyyy-mm-dd
datetime - 格式:yyyy-mm-dd hh:mm:ss
timestamp - 格式:yyyy-mm-dd hh:mm:ss
year - 格式:yyyy 或 yy

 总结:日期函数有点乱,其实我觉得记住几个经常用到的就可以了,不一定非要全部记住,必定谁都没有过目不忘的本领,而且也不会出题考试,工作中用到哪个记不住查一下就可以了

以上所述是小编给大家介绍的mysql date函数,希望对大家有所帮助