如何从日期Sql查询中获取日期和月份?

时间:2015-06-20 06:46:06

标签: sql sql-server

日期格式:20-Jun-14

需要查询返回:20-Jun

当前日期:2015年6月20日

因此,它应与当前日期进行比较,并按上述情况返回

总年份:1年

2 个答案:

答案 0 :(得分:1)

您可以使用DATEPART剪切日期的部分内容。

见:

SELECT DATEPART(day,currentDate), DATEPART(month, currentDate)

这样您就可以比较where - 子句中的日期。

由于提问者需要约会而不是整数,他可以使用DATENAME函数:

SELECT DATEPART(day,currentDate), DATENAME(month, currentDate)

由于DATENAME不支持MMM格式,您还可以使用CASE结构。

SELECT DATEPART(day,currentDate) as day, 
     CASE DATEPART(month, currentDate)
          WHEN 1 THEN N'JAN'
          WHEN 2 THEN N'FEB'
          WHEN 3 THEN N'MAR'
          WHEN 4 THEN N'APR'
          WHEN 5 THEN N'MAI'
          WHEN 6 THEN N'JUN'
          WHEN 7 THEN N'JUL'
          WHEN 8 THEN N'AUG'
          WHEN 9 THEN N'SEP'
          WHEN 10 THEN N'OCT'
          WHEN 11 THEN N'NOV'
          WHEN 12 THEN N'DEC'
      END as month

答案 1 :(得分:0)

要根据需要获得结果,请使用CONVERTFORMAT功能。看看优秀的文章:SQL Server Functions that helps to convert date and time values to and from string literals and other date and time formats.

SELECT FORMAT(GETDATE(), 'dd MMM')

注意:格式化功能在MS SQL Server 2012及更高版本中可用!

要返回时差,请使用DATEDIFF函数:

SELECT DATEDIFF(year, '2014-06-20', GETDATE()) AS YearDiff