SQL日期和时间

来源:互联网 发布:淘宝被方正字体投诉 编辑:程序博客网 时间:2024/05/17 01:36

一、日期是如何存储的

    1、日期和时间的标准数据类型
        日期和时间(DATETIME)存储的标准SQL数据类型有3种
        DATE:存储日期。DATE的格式是YYYY-MM-DD,范围是从0001-01-01到9999-12-31。
        TIME:存储时间。TIME的格式是HH:MI:SS.nn…,范围是从00:00:00…到23:59:61.999…。
        TIMESTAMP:存储日期和时间。TIMESTAMP的格式是YYYY-MM-DD HH:MI:SS.nn…,范围是从0001-01-01 00:00:00…到9999-12-31 23:59:61.999…。

    2、DATETIME元素
        DATETIME元素 有效范围
        YEAR  0001到9999
        MONTH 01到12
        DAY  01到31        HOUR 00到23
        MINUTE 00到59
        SECOND 00.000…到61.999…

    3、不同实现的日期类型

不同平台的日期类型产品数据类型用途OracleDATE存储日期和时间信息SQL ServerDATETIME存储日期和时间信息SMALLDATETIME存储日期和时间信息,但取值范围小于DATETIMEDATE存储日期值TIME存储时间值MySQLDATETIME存储日期和时间值TIMESTAMP存储日期和时间值DATE存储日期值TIME存储时间值YEAR单字节,表示年

二、日期函数

    日期函数用于调整日期和时间的数据外观,以适当的方式显示日期和时间数据、进行比较、计算日期之间的间隔等。

    1、当前日期
        从根本上来说,当前日期保存在数据库所在的计算机上时,被称为系统日期。

        不同实现里获取系统日期的方法:

        SQL Server使用GETDATE()的函数获取系统日期。
        SELECT GETDATE()

        MySQL使用NOW()函数获取当前日期和时间。NOW被称为伪字段。
        SELECT NOW()

        Oracle使用SYSDATE函数获取当前日期和时间,并使用了Oracle中的DUAL表。
        SELECT SYSDATE FROM DUAL

    2、时区
        在处理日期和时间信息时,可能要考虑时区。不同时区,不同日期和时间信息。

    3、时间和日期相加

        SQL Server的DATEADD函数:
        DATEADD(MONTH, 1, DATE_HIRE)

        Oracle的ADD_MONTHS函数:
        ADD_MONTHS(DATE_HIRE,1)

        Oracle的日期增加一天:
        DATE_HIRE + 1

        MySQL使用ANSI标准的INTERVAL命令:
        DATE_ADD(DATE_HIRE, INTERVAL 1 DAY)

    4、其他日期函数

其它日期函数产品日期函数用途SQL ServerDATEPART返回日期的某个元素的整数值DATENAME返回日期的某个元素的文本值GETDATE()返回系统时间DATEDIFF返回两个日期之间由指定日期元素表示的间隔,比如天数、分钟数和秒数OracleNEXT_DAY返回指定日期之后的下一天(比如FRIDAY)MONTHS_BETWEEN返回两个日期之间相差的月数MySQLDAYNAME(date)显示星期几DAYOFMONTH(date)显示几日DAYOFWEEK(date)显示星期几DAYOFYEAR(date)显示一年中的第几天

三、日期转换

    进行日期转换的典型原因有:
    比较不同数据类型的日期值;
    把日期格式转换为字符串;
    把字符串转换为日期格式。

    ANSI的CAST操作符可以把一种数据类型转换为另一种,其基本语法如下:
    CAST(EXPRESSION AS NEW_DATA_TYPE)

    1、日期描述
        日期描述由格式元素组成,用于从数据库以期望的格式提取日期和时间信息。
        常见的日期元素

    2、日期转换为字符串

        SQL Server使用的DATETIME
        DATE_HIRE = DATETIME(MONTH, DATE_HIRE)

        Oracle使用的TO_CHAR函数
        TO_CHAR(DATE_HIRE, ‘Month dd, yyyy’)

    3、字符串转换为日期

        MySQL的STR_TO_DATE
        STR_TO_DATE('01/01/2010 12:00:00 AM', '%m/%d/%Y %h:%i:%s %p')

        SQL Server的CONVERT
        CONVER(DATETIME,’02/25/2010 12:00:00 AM’)

0 0
原创粉丝点击