21. Date 函数
2024-09-03 09:40:08
SQL 日期
当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。
只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点复杂了。
在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。
MySQL Date 函数
下面的表格列出了 MySQL 中最重要的内建日期函数:
函数 | 描述 |
---|---|
NOW() | 返回当前的日期和时间 |
CURDATE() | 返回当前的日期 |
CURTIME() | 返回当前的时间 |
DATE() | 提取日期或日期/时间表达式的日期部分 |
EXTRACT() | 返回日期/时间按的单独部分 |
DATE_ADD() | 给日期添加指定的时间间隔 |
DATE_SUB() | 从日期减去指定的时间间隔 |
DATEDIFF() | 返回两个日期之间的天数 |
DATE_FORMAT() | 用不同的格式显示日期/时间 |
SQL 日期处理
如果不涉及时间部分,那么我们可以轻松地比较两个日期!
假设我们有下面这个 "Orders" 表:
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 |
2 | printer | 2008-12-26 |
3 | electrograph | 2008-11-12 |
4 | telephone | 2008-10-19 |
现在,我们希望从上表中选取 OrderDate 为 "2008-12-26" 的记录。
我们使用如下 SELECT 语句:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
结果集:
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 |
3 | electrograph | 2008-12-26 |
现在假设 "Orders" 类似这样(请注意 "OrderDate" 列中的时间部分):
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 16:23:55 |
2 | printer | 2008-12-26 10:45:26 |
3 | electrograph | 2008-11-12 14:12:08 |
4 | telephone | 2008-10-19 12:56:10 |
如果我们使用上面的 SELECT 语句:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
那么我们得不到结果。这是由于该查询不含有时间部分的日期。
提示:如果您希望使查询简单且更易维护,那么请不要在日期中使用时间部分!
最新文章
- 关于把.net 2.0的项目升级到.net4.0遇到的一些问题
- zynq中uboot的qspi启动报错及解决办法
- 记录遇到的Python陷阱和注意点
- AC日记——找第一个只出现一次的字符 openjudge 1.7 02
- mac10.9+php5.5.15+brew0.9.5的安装
- Html - 圆圈border
- 深入浅出ExtJS 第六章 布局
- Django中url的生成过程详解
- Android OpenGL ES 开发(四): OpenGL ES 绘制形状
- 向 Nginx 主进程发送 USR1 信号
- Android--记录莫名其妙的引用、依赖冲突解决办法
- PHP array_combine()
- c# 读取xml 某个节点值
- Spark集群之yarn提交作业优化案例
- Hadoop Mapreduce 案例 wordcount+统计手机流量使用情况
- php $_FILES处理文件上传
- 【noip模拟赛1】古韵之乞巧 (dp)
- 基于FPGA的DDS设计(一)
- ArcGIS_Server的安装
- Android的移动存储解决方案之SharedPreferences
热门文章
- 如果有人问你ZooKeeper是什么,就把这篇文章发给他。
- 计算机信息类ComputerInfo
- matlab滤波器的设计
- 一次SQL Server 10054 Troubleshooting
- RESTful Get方式传参json格式后端400 解决方案
- w3cschool在线教程
- yii2史上最简单式安装教程,没有之一(转)
- java实现一个最简单的tomcat服务
- yum安装报错“rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 1e5e0159”
- Scanner 的练习 。。。。依然不懂用法。。。苦恼