如何从 SQL Server datetime 数据类型中仅返回日期部分

如何使用示例编写一个查询,从 SQL Server datetime 数据类型中仅返回日期部分。这是经常被问到的问题之一。对于这个日期部分示例,我们将使用下面显示的数据

Employee Table 1

如何从 SQL Server datetime 数据类型中仅返回日期部分示例

在此 SQL Server 示例中,我们首先声明一个 DateTime 变量,并使用 GETDATE() 函数。接下来,我们将使用 CONVERT、CASTDATEADDDATEPART 函数从 Datetime 数据类型中仅提取日期部分。

-- Query to Return Date Part from a Datetime datatype
DECLARE @DateAdd datetime2 = '2017-05-12 14:24:04.1234567'
SELECT GETDATE() AS ToDay;

-- Using Convert without Format on Variable, and GETDATE()
SELECT CONVERT(date, GETDATE()) AS [ToDays Date 1];
SELECT CONVERT(date, @DateAdd) AS [ToDays Date 2];

-- Using Convert with Format on Variable, and GETDATE()
SELECT CONVERT(VARCHAR(10), GETDATE(), 111) AS [ToDays Date 3];
SELECT CONVERT(VARCHAR(10), @DateAdd, 111) AS [ToDays Date 4];

-- Using Cast Function on Variable, and GETDATE()
SELECT CAST(GETDATE() as date) AS [ToDays Date 5];
SELECT CAST(@DateAdd as date) AS [ToDays Date 6];

-- Worst case Scenario  
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) AS [ToDays Date 7];
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @DateAdd)) AS [ToDays Date 8];
Return Date Part Only 2

如何从 datetime 数据类型中仅返回日期部分示例 2

在此示例中,我们将仅从 Hire date 列中提取日期部分。

SELECT [FirstName] + [LastName] AS [Full Name]
      ,[Education]
      ,[Occupation]
      ,[YearlyIncome]
      ,[Sales]
      ,[HireDate]
      ,CONVERT(date, [HireDate]) AS [HireDate 1]
      ,CONVERT(date, [HireDate], 111) AS [HireDate 2]
      ,CAST([HireDate] AS date) AS [HireDate 3]
  FROM [Employee]
How to Return Date Part Only from a Datetime datatype 3