如何在创建表并填充 SQL 时指定日期格式?


在 SQL 中,日期和时间值使用特定的数据类型处理,例如 DATE、DATETIME、TIMESTAMP 等。每个数据库管理系统 (DBMS) 可能有其日期格式的约定,因此了解如何指定和使用这些格式对于在 SQL 中处理日期至关重要。

以下是用于在 SQL 中处理日期和时间的几种数据类型

  • DATE:存储日期值(年、月、日)。
  • DATETIME:存储日期和时间值(年、月、日、时、分、秒)。
  • TIMESTAMP:存储日期和时间值,并具有更高的精度(通常包括时区信息)。

创建包含日期字段的表

创建包含日期字段的表,可以使用 CREATE TABLE 语句并为日期列指定适当的数据类型。

基本语法

CREATE TABLE table_name ( column_name DATE, another_column DATETIME);

示例 1:创建包含 DATE 列的表

让我们创建一个表来存储员工信息,包括他们的入职日期

CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, Name VARCHAR(100), HireDate DATE);
在此示例中,HireDate 列使用 DATE 数据类型定义。DATE 类型不包含时间信息,仅存储年、月和日。

示例 2:创建包含 DATETIME 列的表

现在,我们将创建一个表来跟踪项目里程碑,包括每个里程碑的确切时间戳

CREATE TABLE ProjectMilestones ( MilestoneID INT PRIMARY KEY, MilestoneName VARCHAR(100), MilestoneDate DATETIME);
这里,MilestoneDate 使用 DATETIME 数据类型定义,它允许存储日期和时间值。

将日期值插入表中

将日期值插入这些表时,需要确保日期格式根据 DBMS 的要求正确格式化。以下是一些处理各种日期和时间格式的示例

  • YYYY-MM-DD:DATE 数据类型的标准格式。
  • YYYY-MM-DD HH:MI:DATETIME 和 TIMESTAMP 数据类型的标准格式。

示例 1:将日期插入 Employees 表

INSERT INTO Employees (EmployeeID, Name, HireDate) VALUES (1, 'John Doe', '2024-09-16');
在此示例中,日期格式为 YYYY-MM-DD,适合 DATE 类型。

示例 2:将日期和时间插入 ProjectMilestones 表

INSERT INTO ProjectMilestones (MilestoneID, MilestoneName, MilestoneDate) VALUES (1, 'Project Kickoff', '2024-09-16 09:00:00');
这里,日期和时间格式为 YYYY-MM-DD HH:MI:SS,适合 DATETIME 类型。

在查询中处理日期格式

查询数据时,可能需要格式化或操作日期值。SQL 提供了各种处理日期的函数。

示例 1:在 SELECT 查询中格式化日期

要以特定格式显示日期,可以在 Oracle 中使用 TO_CHAR() 函数或在 SQL Server 中使用 FORMAT 函数。

Oracle 示例

SELECT EmployeeID, Name, TO_CHAR(HireDate, 'DD-Mon-YYYY') AS FormattedHireDateFROM Employees;

SQL Server 示例

SELECT EmployeeID, Name, FORMAT(HireDate, 'dd MMM yyyy') AS FormattedHireDateFROM Employees;

示例 2:提取日期的各个部分

您可能需要提取日期的特定部分,例如年份或月份。

Oracle 示例

SELECT EmployeeID, Name, EXTRACT(YEAR FROM HireDate) AS HireYearFROM Employees;

SQL Server 示例

SELECT EmployeeID, Name, YEAR(HireDate) AS HireYearFROM Employees;

更新于:2024-09-19

33 次查看

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告