SQL日期和时间

一、日期是如何存储的

    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存储日期和时间信息,但取值范围小于DATETIME
DATE存储日期值
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’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值