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

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

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

以下的文章主要讲述的是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的认识是不是更上一层楼了,时时关注IT *** ,学习最新Mysql技术。

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

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

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

分享给朋友:

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

windows 7系统如何设置休眠时不断网以便继续完成下载

windows 7系统如何设置休眠时不断网以便继续完成下载

在Windows 7系统的默认设置中,当Windows 7系统处于休眠状态时,会同时断网的。如此一来,无论你正在使用迅雷还是快车等下载工具,同样可以在休眠状态下继续完成下载,最大限度做到从身边的小事开始支持环保。下面我们就详细介绍操作步骤,帮助Windows 7系统用户实现这一节能目标。 首先需要...

windows7系统下让所有文件夹都使用同一种视图的方法

windows7系统下让所有文件夹都使用同一种视图的方法

Windows 7系统可以对每个文件夹进行个性化视图设置,可以根据自己的个人喜好和实际需要更改文件或文件夹图标的大小,或者让文件或文件夹以列表、平铺等方式显示。但是,假如你对N个文件夹视图进行了风格各异的个性设置,现在又想让所有文件夹都使用同一种视图怎么办呢 手工一个一个修改,你OUT了,非累得手抽...

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...

Ubuntu 14.10上安装新的字体图文教程

Ubuntu 14.10上安装新的字体图文教程

像Ubuntu这种开源系统,一般都自带有好多漂亮的字体,不过假如您想使用您熟悉的字体,可以通过在Ubuntu或其它Linux系统上安装字体,帮助用户在使用开源OS平台上更好的视图体验。 软件名称:Ubuntu 14.04 官方正式版软件大小:752MB更新时间:2014-05-07 Ubun...

windows 7系统中不能把程序锁定到任务栏的解决方法图文讲解

windows 7系统中不能把程序锁定到任务栏的解决方法图文讲解

最近小编在使用Windows 7的时侯遇到一个问题,就是应用程序和快捷方式不能锁定到任务栏,我当时不知道怎么回事,但是很多现有的方法都不能解决这个问题。现在我把我的解决的方法分享给大家以作参考。 问题分析 经过思考,初步判断出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。...

windows 7怎么设置密码永不过期?

windows 7怎么设置密码永不过期?

下面小编以Windows 7 64位为例,介绍下密码是如何设置永不过期的。  1、在桌面上打开“开始”菜单,或者点击“Win+R”快捷键将“运行”对话框打开。  2、运行对话框打开后,在里面中输入“lusrmgr.msc”字符命令,就可以打开“本地用户和组程序”。...