mysql时间函数

来源:互联网 发布:java项目开发视频 编辑:程序博客网 时间:2024/06/05 12:43

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

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

+---------------------+
| now() |
+---------------------+
| 2008-08-08 22:20:46 |

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


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 |
+------------+

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

mysql> select curtime();

+-----------+
| curtime() |
+-----------+
| 22:41:30 |
+-----------+

/============================================================

DAYOFWEEK(date)
返回 date 的星期索引(1 = Sunday, 2 = Monday, … 7 = Saturday)。索引值符合 ODBC 的标准。
1mysql> SELECT DAYOFWEEK(’1998-02-03’);
2-> 3
WEEKDAY(date)
返回 date 的星期索引(0 = Monday, 1 = Tuesday, … 6 = Sunday):

1mysql> SELECT WEEKDAY(’1998-02-03 22:23:00’);
2-> 1
3mysql> SELECT WEEKDAY(’1997-11-05’);
4-> 2
DAYOFMONTH(date)
返回 date 是一月中的第几天,范围为 1 到 31

1mysql> SELECT DAYOFMONTH(’1998-02-03’);
2-> 3
DAYOFYEAR(date)
返回 date 是一年中的第几天,范围为 1 到 366

1mysql> SELECT DAYOFYEAR(’1998-02-03’);
2-> 34
MONTH(date)
返回 date 中的月份,范围为 1 到 12

1mysql> SELECT MONTH(’1998-02-03’);
2-> 2
DAYNAME(date)
返回 date 的星期名:

1mysql> SELECT DAYNAME("1998-02-05");
2-> ’Thursday’
MONTHNAME(date)
返回 date 的月份名:

1mysql> SELECT MONTHNAME("1998-02-05");
2-> ’February’
======================================================================


DATE_FORMAT(date,format)
依照 format 字符串格式化 date 值。下面的修饰符可被用于 format 字符串中:

修饰符含义%M月的名字 (January..December)%W星期的名字 (Sunday..Saturday)%D有英文后缀的某月的第几天 (0th1st2nd3rd, etc.)%Y年份,数字的,4 位%y年份,数字的,2 位%X周值的年份,星期日是个星期的第一天,数字的,4 位,和 ’%V’ 一同使用%x周值的年份,星期一是个星期的第一天,数字的,4 位,和 ’%v’ 一同使用%a缩写的星期名 (Sun..Sat)%d月份中的天数,数字的 (00..31)%e月份中的天数,数字的 (0..31)%m月,数字的 (00..12)%c月,数字的 (0..12)%b缩写的月份名 (Jan..Dec)%j一年中的天数 (001..366)%H小时 (00..23)%k小时 (0..23)%h小时 (01..12)%I小时 (01..12)%l小时 (1..12)%i分钟,数字的 (00..59)%r时间,12 小时 (hh:mm:ss [AP]M)%T时间,24 小时 (hh:mm:ss)%S秒 (00..59)%s秒 (00..59)%pAM 或 PM%w一周中的天数 (0=Sunday..6=Saturday)%U星期 (00..53),星期日是个星期的第一天%u星期 (00..53),星期一是个星期的第一天%V星期 (01..53),星期日是个星期的第一天。和 ’%X’ 一起使用%v星期 (01..53),星期一是个星期的第一天。和 ’%x’ 一起使用%%一个字母 “%”

所有其他的字符不经过解释,直接复制到结果中:

view source
print?
01mysql> SELECT DATE_FORMAT(’1997-10-04 22:23:00’, ’%W %M %Y’);
02-> ’Saturday October 1997’
03mysql> SELECT DATE_FORMAT(’1997-10-04 22:23:00’, ’%H:%i:%s’);
04-> ’22:23:00’
05mysql> SELECT DATE_FORMAT(’1997-10-04 22:23:00’,
06’%D %y %a %d %m %b %j’);
07-> ’4th 97 Sat 04 10 Oct 277’
08mysql> SELECT DATE_FORMAT(’1997-10-04 22:23:00’,
09’%H %k %I %r %T %S %w’);
10-> ’22 22 10 10:23:00 PM 22:23:00 00 6’
11mysql> SELECT DATE_FORMAT(’1999-01-01’, ’%X %V’);
12-> ’1998 52’

===========================================================================================

MySQL Date 函数

下面的表格列出了 MySQL 中最重要的内建日期函数:

函数描述NOW()返回当前的日期和时间CURDATE()返回当前的日期CURTIME()返回当前的时间DATE()提取日期或日期/时间表达式的日期部分EXTRACT()返回日期/时间按的单独部分DATE_ADD()给日期添加指定的时间间隔DATE_SUB()从日期减去指定的时间间隔DATEDIFF()返回两个日期之间的天数DATE_FORMAT()用不同的格式显示日期/时间



0 0