当前位置:首页 > 系统运维 > 正文内容

MySQL数据库的日期函数与时间函数

a8116255316年前 (2010-05-21)系统运维11

以下的文章主要讲述的是MySQL数据库的日期函数与时间函数(MySQL 5.X)的实际应用的经验总结,MySQL日期函数与时间函数在实际应用中出现的频率还是很大的,以下的文章就是对这两个函数的详细描述。

MySQL 数据库获得当前日期时间 函数:

1.1 获得当前日期+时间(date + time)函数:now()

mysql> select now();  +---------------------+  | now() |  +---------------------+  | 2008-08-08 22:20:46 |  +---------------------+  

除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:

current_timestamp()  ,current_timestamp  ,localtime()  ,localtime  ,localtimestamp -- (v4.0.6)  ,localtimestamp() -- (v4.0.6) 

这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。

1.2 获得当前日期+时间(date + time)函数:sysdate()

sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了:

mysql> select now(), sleep(3), now();  +---------------------+----------+---------------------+  | now() | sleep(3) | now() |  +---------------------+----------+---------------------+  | 2008-08-08 22:28:21 | 0 | 2008-08-08 22:28:21 |  +---------------------+----------+---------------------+mysql> select sysdate(), sleep(3), sysdate();  +---------------------+----------+---------------------+  | sysdate() | sleep(3) | sysdate() |  +---------------------+----------+---------------------+  | 2008-08-08 22:28:41 | 0 | 2008-08-08 22:28:44 |  +---------------------+----------+---------------------+  

看到的是,虽然 中途 sleep 3 秒,但 now() 函数两次的时间值是相同的; sysdate() 函数两次得到的时间值相差 3 秒。MySQL 数据库Manual 中是这样描述 sysdate() 的:Return the time at which the function executes。

sysdate() 日期时间函数,一般情况下很少用到。

2. 获得当前日期(date)函数:curdate()

mysql> select curdate();  +------------+  | curdate() |  +------------+  | 2008-08-08 |  +------------+  

其中,下面的两个日期函数等同于 curdate():

current_date()

,current_date3. 获得当前时间(time)函数:curtime()

mysql> select curtime();  +-----------+  | curtime() |  +-----------+  | 22:41:30 |  

+-----------+其中,下面的两个时间函数等同于 curtime():

current_time()

,current_time4. 获得当前 UTC 日期时间函数:

utc_date(), utc_time(), utc_timestamp()  mysql> select utc_timestamp(), utc_date(), utc_time(), now()  +---------------------+------------+------------+---------------------+  | utc_timestamp() | utc_date() | utc_time() | now() |  +---------------------+------------+------------+---------------------+  | 2008-08-08 14:47:11 | 2008-08-08 | 14:47:11 | 2008-08-08 22:47:11 |  +---------------------+------------+------------+---------------------+  

因 为我国位于东八时区,所以本地时间 = UTC 时间 + 8 小时。UTC 时间在业务涉及多个国家和地区的时候,非常有用。

二、MySQL数据库 日期时间 Extract(选取) 函数。

1. 选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒

set @dt = '2008-09-10 07:15:30.123456';  select date(@dt); -- 2008-09-10  select time(@dt); -- 07:15:30.123456  select year(@dt); -- 2008  select quarter(@dt); -- 3  select month(@dt); -- 9  select week(@dt); -- 36  select day(@dt); -- 10  select hour(@dt); -- 7  select minute(@dt); -- 15  select second(@dt); -- 30  select microsecond(@dt);  

1234562. MySQL Extract() 函数,可以上面实现类似的功能:

set @dt = '2008-09-10 07:15:30.123456';   select extract(year from @dt); -- 2008  select extract(quarter from @dt); -- 3  select extract(month from @dt); -- 9  select extract(week from @dt); -- 36  select extract(day from @dt); -- 10  select extract(hour from @dt); -- 7  select extract(minute from @dt); -- 15  select extract(second from @dt); -- 30  select extract(microsecond from @dt); -- 123456select extract(year_month from @dt); -- 200809  select extract(day_hour from @dt); -- 1007  select extract(day_minute from @dt); -- 100715  select extract(day_second from @dt); -- 10071530  select extract(day_microsecond from @dt); -- 10071530123456  select extract(hour_minute from @dt); -- 715  select extract(hour_second from @dt); -- 71530  select extract(hour_microsecond from @dt); -- 71530123456  select extract(minute_second from @dt); -- 1530  select extract(minute_microsecond from @dt); -- 1530123456  select extract(second_microsecond from @dt);  

30123456MySQL Extract() 函数除了没有date(),time() 的功能外,其他功能一应具全。并且还具有选取‘day_microsecond’ 等功能。注意这里不是只选取 day 和 microsecond,而是从日期的 day 部分一直选取到 microsecond 部分。够强悍的吧!

上面说了这么多内容,是关于对MySQL数据库的日期函数、时间函数(MySQL 5.X)的部分内容介绍,不知道各位对MySQL的认识是不是更上一层楼了,时时关注ITjs,学习最新Mysql技术。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/20513.html

分享给朋友:

“MySQL数据库的日期函数与时间函数” 的相关文章

Windows7开机后出现黑一下屏性能降低

Windows7开机后出现黑一下屏性能降低

打开IE浏览器的时候、聊QQ的时候、玩游戏的时候… … 这到底是谁惹的祸呢? 很多人都知道Windows 7桌面特效全部开启会使系统性能降低,那到底是哪个特效导致的这一情况呢? 解决办法: 右键计算机,高级系统设置-性能-设置-关闭”任务栏和开始菜单使用动画“和”最大化和最小化动态显示窗口“...

各个都很实用:windows 7系统电脑日常小技巧

各个都很实用:windows 7系统电脑日常小技巧

在使用Windows 7的时候很多用户对于系统的很多功能并不是很了解,也正是因为这样的不了解导致很多用户在使用Win 之后并不能体验Windows 7的功能便携和强大功能,导致很多用户对于Windows 7的认识还是比较模糊,不过为了让更多的朋友了解Windows 7的特点和便携应用,今天就为大家汇...

Skylake平台不能通过USB接口装windows 7系统

Skylake平台不能通过USB接口装windows 7系统

Intel会在2015年推出Broadwell、Skylake两代14nm处理器,前者可以使用9系芯片组,Skylake升级到了LGA1151插槽,需要搭配新的100系列芯片组,但初期的Skylake-S又不能超倍频,所以今年Q2季度开始会很混杂。Skylake一代会支持DDR4,100系列芯片组升...

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。 1、在开始搜索框中键入“regedit”,按回车键打开注册表编辑器。 2、依次定位到以下分支:HKEY_CLASSES_ROOTlnkfile。 3、在lnkfile项上鼠标右键单击“新建”——“字符串值”。...

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

问题现象,具体如下所示:  故障分析: 一般来说,出现这种情况是因为电脑误删系统文件或者是系统文件被顽固木马破坏。       解决方法: 1、下载360安全卫士,找到里面的急救箱开始急救,然后进行修复,完成后重新启动; 2、下载瑞...

windows 7系统开机提示Windows驱动器未就绪的故障原因及解决方法

windows 7系统开机提示Windows驱动器未就绪的故障原因及解决方法

 故障分析: 主要原因应该是不存在软盘驱动器或驱动器未安装,找到故障原因后,Windows 7 32位系统只要将软盘驱动器禁用就可以了。 解决措施: 1、右键点击计算机,选择管理,打开计算机管理窗口; 2、在计算机管理中,找到设备管理器,在右边的软盘控制器中右击,选择卸载即可。 以...