详解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函数,希望对大家有所帮助