第40章 SQL Date 函数教程

SQL 日期(Dates)

当咱们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与database中日期列的格式相匹配。

只要大王的数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间部分,情况就有点复杂了。

在讨论日期查询的复杂性之前,咱们先来看看最重要的内建日期处理函数。


My第40章 SQL Date 函数教程

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

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

SQL Server Date 函数

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

函数描述
GETDATE()return 当前的日期和时间
DATEPART()return 日期/时间的单独部分
DATEADD()在日期中添加或减去指定的时间间隔
DATEDIFF()return 两个日期之间的时间
CONVERT()用不同的格式显示日期/时间

SQL Date 数据类型

MySQL 使用下列数据类型在database中存储日期或日期/时间值:

  • DATE - 格式:YYYY-MM-DD
  • DATETIME - 格式:YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS
  • YEAR - 格式:YYYY 或 YY

SQL Server 使用下列数据类型在database中存储日期或日期/时间值:

  • DATE - 格式:YYYY-MM-DD
  • DATETIME - 格式:YYYY-MM-DD HH:MM:SS
  • SMALLDATETIME - 格式:YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式:唯一的数字

**注释:**当大王在database中创建一个新表时,需要为列选择数据类型!

如需了解所有可用的数据类型,请访问咱们完整的 数据类型参考手册。


SQL 日期处理

如果不涉及时间部分,那么咱们可以轻松地比较两个日期!

假设咱们有如下的 “Orders” 表:

OrderIdProductNameOrderDate
1Geitost2008-11-11
2Camembert Pierrot2008-11-09
3Mozzarella di Giovanni2008-11-11
4Mascarpone Fabioli2008-10-29

现在,咱们希望从上表中选取 OrderDate 为 “2008-11-11” 的记录。

咱们使用下面的 SELECT 语句:


    SELECT * FROM Orders WHERE OrderDate='2008-11-11'

结果集请在输出结果查看

OrderIdProductNameOrderDate
1Geitost2008-11-11
3Mozzarella di Giovanni2008-11-11

现在,假设 “Orders” 表如下所示(请注意 “OrderDate” 列中的时间部分):

OrderIdProductNameOrderDate
1Geitost2008-11-11 13:23:44
2Camembert Pierrot2008-11-09 15:45:21
3Mozzarella di Giovanni2008-11-11 11:12:01
4Mascarpone Fabioli2008-10-29 14:56:59

如果咱们使用和上面一样的 SELECT 语句:


    SELECT * FROM Orders WHERE OrderDate='2008-11-11'SELECT * FROM Orders WHERE OrderDate='2008-11-11 00:00:00'

那么咱们将得不到结果!因为表中没有"2008-11-11 00:00:00"日期。如果没有时间部分,默认时间为 00:00:00。

**提示:**如果大王希望使查询简单且更易维护,那么请不要在日期中使用时间部分!

本专栏所有文章

第1章 SQL 教程第2章 SQL 简介教程
第3章 SQL 语法教程第4章 SQL SELECT教程
第5章 SQL SELECT DISTINCT教程第6章 SQL WHERE教程
第7章 SQL AND & OR教程第8章 SQL ORDER BY教程
第9章 SQL INSERT INTO教程第10章 SQL UPDATE教程
第11章 SQL DELETE教程第12章 SQL SELECT TOP教程
第13章 SQL LIKE教程第14章 SQL 通配符教程
第15章 SQL IN教程第16章 SQL BETWEEN教程
第17章 SQL 别名教程第18章 SQL 连接(JOIN)教程
第19章 SQL INNER JOIN教程第20章 SQL LEFT JOIN教程
第21章 SQL RIGHT JOIN教程第22章 SQL FULL JOIN教程
第23章 SQL UNION教程第24章 SQL SELECT INTO教程
第25章 SQL INSERT INTO SELECT教程第26章 SQL CREATE DATABASE教程
第27章 SQL CREATE TABLE教程第28章 SQL 约束教程
第29章 SQL NOT NULL教程第30章 SQL UNIQUE教程
第31章 SQL PRIMARY KEY教程第32章 SQL FOREIGN KEY教程
第33章 SQL CHECK教程第34章 SQL DEFAULT教程
第35章 SQL CREATE INDEX教程第36章 SQL DROP教程
第37章 SQL ALTER教程第38章 SQL Auto Increment教程
第39章 SQL 视图教程第40章 SQL 日期教程
第41章 SQL NULL 值教程第42章 SQL NULL 函数教程
第43章 SQL 通用数据类型教程第44章 SQL DB 数据类型教程
第45章 SQL 函数教程第46章 SQL AVG()教程
第47章 SQL COUNT()教程第48章 SQL FIRST()教程
第49章 SQL LAST()教程第50章 SQL MAX()教程
第51章 SQL MIN()教程第52章 SQL SUM()教程
第53章 SQL GROUP BY教程第54章 SQL HAVING教程
第55章 SQL EXISTS教程第56章 SQL UCASE()教程
第57章 SQL LCASE()教程第58章 SQL MID()教程
第59章 SQL LEN()教程第60章 SQL ROUND()教程
第61章 SQL NOW()教程第62章 SQL FORMAT()教程
第63章 SQL 快速参考教程第64章 SQL 主机教程
第65章 SQL 总结教程

寄语

本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598

  • 诚实的人务必对自我守信,他的最后靠山就是真诚。
  • 极端的命运是对智慧的真正检验,谁最能经得起这种考验,谁就是大智大慧
  • 对于一颗什么都需要享受的青年的心,获得幸福并不需要多少代价。
  • 人生在世几十年,不断的寻找的莫非就是金钱与感情。年轻时为了物质的生活不断追求金钱给我们带来的快感,可随着经历与阅历的不断增加,渐渐的才明白一辈子最重要的是什么,苦苦追寻人生真谛为何物,其实感情比任何物质都重要,它是支持着我们走下去的动力,只要有感情的滋润,人生不管遇到什么坎坷都可以过去。
  • 不知不觉又到年底了,年复一年,真的没有意思,我现在的每一天都过得极有规律,在什么时间,在什么地点。
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴莲酱csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值