📜  将日期时间转换为日期的 SQL 查询

📅  最后修改于: 2022-05-13 01:54:56.490000             🧑  作者: Mango

将日期时间转换为日期的 SQL 查询

在 MS SQL Server 中,日期对于新手来说是复杂的,因为在使用数据库时,表中日期的格式必须与输入日期匹配才能插入。在各种场景中,不使用日期,而是使用日期时间(时间也与日期有关)。在本文中,我们将学习如何使用三个不同的函数将 DateTime 转换为 DATE。

  • 投掷( )
  • 转变( )
  • TRY_CONVERT()
  • 使用子串

本文数据的目的是将 SQL Server 中的 DateTime 转换为 Date,如 YYYY-MM-DD HH:MM: SS 到 YYYY-MM-DD。

方法一:使用强制转换

这是一个将一种类型转换为另一种类型的函数,所以这里我们将使用将 DateTime 转换为日期。

句法:

CAST( dateToConvert AS DATE)

示例 1:



询问:

SELECT CAST(GETDATE() AS DATE) AS CURRENT_DATE

输出:

GETDATE():此函数返回当前日期时间,如(2021-08-27 17:26:36.710)

例2;

询问:

SELECT CAST('2021-08-27 17:26:36.710' AS DATE) AS CURRENT_DATE_GFG

输出:



方法 2:使用转换

这是一个将一种类型转换为另一种类型的函数,所以这里我们将使用它来将DateTime转换为日期。

句法:

CONVERT(DATE, dateToConvert)

示例 1:

询问:

SELECT CONVERT(DATE, GETDATE()) AS CURRENT_DATE_GFG

输出:

示例 2:

询问:

SELECT CONVERT(DATE, '2021-08-27 17:26:36.710' ) AS CURRENT_DATE_GFG

输出:

方法 3:Try_Convert

这是一个将一种类型转换为另一种类型的函数,所以这里我们将使用 Convert DateTime to date。如果日期无效,那么它将为空,而 Convert 生成错误。

句法:

TRY_CONVERT(DATE, dateToConvert)

SELECT TRY_CONVERT(DATE,'2021-08-27 17:26:36.710') AS CURRENT_DATE_GFG

示例 1:

询问:

SELECT TRY_CONVERT(DATE,GETDATE()) AS CURRENT_DATE_GFG

输出:

示例 2:

询问:

SELECT TRY_CONVERT(DATE,'2021-08-27 17:26:36.710') AS CURRENT_DATE_GFG

输出:



方法四:使用子串

这是一个用于获取短字符串或子字符串的函数,因此这里使用我们获取子字符串 0 到 11 的索引。

句法:

SUBSTRING( dateToConvert ,0,11)

示例 1:

询问:

SELECT SUBSTRING( '2021-08-27 17:26:36.710' ,0,11) AS CURRENT_DATE_GFG

输出:

例2;

询问:

SELECT SUBSTRING( CONVERT(varchar(17), GETDATE(), 23) ,0,11) AS CURRENT_DATE_GFG

输出: