zoukankan      html  css  js  c++  java
  • Mysql 中时间日期函数

     

    Mysql 中时间日期函数

    获取当前日期或时间

    --当前日期

    SELECT curdate( )

    2010-11-15

    SELECT CURRENT_DATE( )

    2010-11-15

    --当前时间

    SELECT curtime( )

    12:51:35

    SELECT CURRENT_TIME( )

    12:53:25

    --当前日期时间

    SELECT now( )

    2010-11-15 13:01:40

    SELECT CURRENT_TIMESTAMP( )

    2010-11-15 12:52:47

    注意:在一个单一询问中,对诸如NOW() 的函数多次访问总是会得到同样的结果

    日期增减

    DATE_ADD(date,INTERVAL expr type)

    DATE_SUB(date,INTERVAL expr type)

    这些函数执行日期运算。

    date 是一个 DATETIME 或DATE值,用来指定起始时间。

    expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值。 Expr是一个字符串;对于负值的时间间隔,它可以以一个 ‘-’开头。

    type 为关键词,它指示了表达式被解释的方式。 

    关键词INTERVA及 type 分类符均不区分大小写。

    以下表显示了typeexpr 参数的关系:

    type

    预期的 expr 格式

    MICROSECOND

    MICROSECONDS

    SECOND

    SECONDS

    MINUTE

    MINUTES

    HOUR

    HOURS

    DAY

    DAYS

    WEEK

    WEEKS

    MONTH

    MONTHS

    QUARTER

    QUARTERS

    YEAR

    YEARS

    SECOND_MICROSECOND

    'SECONDS.MICROSECONDS'

    MINUTE_MICROSECOND

    'MINUTES.MICROSECONDS'

    MINUTE_SECOND

    'MINUTES:SECONDS'

    HOUR_MICROSECOND

    'HOURS.MICROSECONDS'

    HOUR_SECOND

    'HOURS:MINUTES:SECONDS'

    HOUR_MINUTE

    'HOURS:MINUTES'

    DAY_MICROSECOND

    'DAYS.MICROSECONDS'

    DAY_SECOND

    'DAYS HOURS:MINUTES:SECONDS'

    DAY_MINUTE

    'DAYS HOURS:MINUTES'

    DAY_HOUR

    'DAYS HOURS'

    YEAR_MONTH

    'YEARS-MONTHS'

    MySQL 允许任何expr 格式中的标点分隔符。表中所显示的是建议的 分隔符。若 date 参数是一个 DATE 值,而你的计算只会包括 YEAR、MONTH和DAY部分(即, 没有时间部分), 其结果是一个DATE 值。否则,结果将是一个 DATETIME值。

    SELECT DATE_ADD( '1997-12-31 23:59:59', INTERVAL 1  SECOND ) ;

    1998-01-01 00:00:00

    SELECT DATE_ADD( '1997-12-31 23:59:59', INTERVAL 1  DAY ) ;

    1998-01-01 23:59:59

    SELECT DATE_ADD( '1998-01-01 00:00:00', INTERVAL '-1 10' DAY_HOUR ) ;

    1997-12-30 14:00:00

    --31天前

    SELECT DATE_SUB( '1998-01-02', INTERVAL 31  DAY ) ;

    1997-12-02

    --前一天

    SELECT date_add( '2010-11-11', INTERVAL -1 DAY )

    2010-11-10

    将日期时间转换成指定格式

    DATE_FORMAT(date,format)

    根据format 字符串安排date 值的格式。

    以下说明符可用在 format 字符串中:

    说明符

    说明

    %a

    工作日的缩写名称  (Sun..Sat)

    %b

    月份的缩写名称  (Jan..Dec)

    %c

    月份,数字形式(0..12)

    %D

    带有英语后缀的该月日期  (0th, 1st, 2nd, 3rd, ...)

    %d

    该月日期, 数字形式 (00..31)

    %e

    该月日期, 数字形式(0..31)

    %f

    微秒 (000000..999999)

    %H

    小时(00..23)

    %h

    小时(01..12)

    %I

    小时 (01..12)

    %i

    分钟,数字形式 (00..59)

    %j

    一年中的天数 (001..366)

    %k

    小时 (0..23)

    %l

    小时 (1..12)

    %M

    月份名称 (January..December)

    %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位数)

    %%

    ‘%’文字字符

    所有其它字符都被复制到结果中,无需作出解释。

    注意, ‘%’字符要求在格式指定符之前。

    月份和日期说明符的范围从零开始,原因是 MySQL允许存储诸如 '2004-00-00'的不完全日期.

    SELECT DATE_FORMAT( FROM_UNIXTIME( 875996580 ) , '%Y-%m-%d %H:%i:%s' )

    1997-10-05 04:23:00

    SELECT DATE_FORMAT( FROM_UNIXTIME( 875996580 ) , '%Y-%m-%d' )

    1997-10-05

    FROM_UNIXTIME(unix_timestamp) ,

    FROM_UNIXTIME(unix_timestamp,format)

    返回'YYYY-MM-DD HH:MM:SS'YYYYMMDDHHMMSS 格式值的unix_timestamp参数表示,具体格式取决于该函数是否用在字符串中或是数字语境中。

    format 已经给出,则结果的格式是根据format 字符串而定。 format 可以包含同DATE_FORMAT() 函数输入项列表中相同的说明符。

    SELECT FROM_UNIXTIME(875996580);

    '1997-10-04 22:23:00'

    SELECT FROM_UNIXTIME(875996580) + 0;

    19971004222300

    MySql unix时间转换成SQLServer适用的时间格式

    SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y-%m-%d %H:%i:%s');

    '2010-11-12 17:08:59'

    SQLServer适用的时间格式转换成unix时间

    UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
    若无参数调用,则返回一个Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒数) 作为无符号整数。若用date 来调用UNIX_TIMESTAMP(),它会将参数值以'1970-01-01 00:00:00' GMT后的秒数的形式返回。date 可以是一个DATE 字符串、一个 DATETIME字符串、一个 TIMESTAMP或一个当地时间的YYMMDD 或YYYMMDD格式的数字。
    mysql> SELECT UNIX_TIMESTAMP();
    -> 882226357
    mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
    -> 875996580
    mysql>  SELECT unix_timestamp( '1997-10-04' )
    -> 875894400

    MySql DateTime 转换成指定格式字符串

    更多内容参考:

    MySQL在线中文手册

    http://imysql.cn/docs/MySQL_51_zh/mysql_51.html

  • 相关阅读:
    ARM汇编伪指令介绍.
    初识KITL
    c面试题
    Windows ce的体系结构和功能
    c宏定义的技巧总结
    Build in Windows Mobile
    关于wince注册表
    动态链接库(Dynamic Link Library)学习笔记
    WinCE驱动开发问题精华集锦
    OAL之系统时钟
  • 原文地址:https://www.cnblogs.com/stublue/p/1877614.html
Copyright © 2011-2022 走看看