Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

SQL 教程

SQL 主页 SQL 简介 SQL 语法 SQL 选择 SQL 选择唯一 SQL Where SQL 按顺序排序 SQL And SQL Or SQL Not SQL 插入到 SQL 空值 SQL 更新 SQL 删除 SQL 选择顶部 SQL 聚合函数 SQL 最小值和最大值 SQL 计数 SQL 求和 SQL 平均值 SQL Like SQL 通配符 SQL In SQL Between SQL 别名 SQL 连接 SQL 内连接 SQL 左连接 SQL 右连接 SQL 全连接 SQL 自连接 SQL Union SQL 分组 SQL Having SQL Exists SQL Any, All SQL 选择到 SQL 插入到选择 SQL Case SQL 空函数 SQL 存储过程 SQL 注释 SQL 运算符

SQL 数据库

SQL 创建数据库 SQL 删除数据库 SQL 备份数据库 SQL 创建表 SQL 删除表 SQL 修改表 SQL 约束 SQL 非空 SQL 唯一 SQL 主键 SQL 外键 SQL 检查 SQL 默认值 SQL 索引 SQL 自动递增 SQL 日期 SQL 视图 SQL 注入 SQL 托管 SQL 数据类型

SQL 参考

SQL 关键字 MySQL 函数 SQL Server 函数 MS Access 函数 SQL 快速参考

SQL 示例

SQL 示例 SQL 编辑器 SQL 测验 SQL 练习 SQL Server SQL 集训营 SQL 证书

SQL 处理日期


SQL 日期

使用日期时最困难的部分是确保要插入的日期格式与数据库中日期列的格式匹配。

只要数据只包含日期部分,查询就会按预期工作。但是,如果涉及时间部分,就会变得更加复杂。


SQL 日期数据类型

MySQL 提供以下数据类型用于在数据库中存储日期或日期/时间值

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

SQL Server 提供以下数据类型用于在数据库中存储日期或日期/时间值

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

注意: 当您在数据库中创建新表时,会为列选择数据类型!


SQL 处理日期

查看以下表格

订单表

订单号 产品名称 订单日期
1 Geitost 2008-11-11
2 Camembert Pierrot 2008-11-09
3 Mozzarella di Giovanni 2008-11-11
4 Mascarpone Fabioli 2008-10-29

现在我们要从上表中选择订单日期为 "2008-11-11" 的记录。

我们使用以下 SELECT 语句

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

结果集将如下所示

订单号 产品名称 订单日期
1 Geitost 2008-11-11
3 Mozzarella di Giovanni 2008-11-11

注意: 如果不涉及时间部分,则可以轻松比较两个日期!

现在,假设 "Orders" 表如下所示(注意 "OrderDate" 列中添加了时间部分)

订单号 产品名称 订单日期
1 Geitost 2008-11-11 13:23:44
2 Camembert Pierrot 2008-11-09 15:45:21
3 Mozzarella di Giovanni 2008-11-11 11:12:01
4 Mascarpone Fabioli 2008-10-29 14:56:59

如果我们使用上面相同的 SELECT 语句

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

我们将得不到任何结果!这是因为查询只查找没有时间部分的日期。

提示: 为了使查询保持简单易维护,除非必须,否则不要在日期中使用时间部分!


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.