将日期时间转换为日期的 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
输出: