Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从日期Sql查询中获取日期和月份?_Sql_Sql Server - Fatal编程技术网

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

如何从日期Sql查询中获取日期和月份?,sql,sql-server,Sql,Sql Server,日期格式:2014年6月20日 需要查询返回日期:6月20日 当前日期:2015年6月20日 所以,它应该与当前日期进行比较,并返回上述情况 总年数:1年您可以使用DATEPART剪切日期的各个部分 见: 这样,您应该能够比较日期,例如在where-子句中 由于提问者需要的日期不是整数,他可以使用DATENAME函数: SELECT DATEPART(day,currentDate), DATENAME(month, currentDate) SELECT DATEDIFF(year, '20

日期格式:2014年6月20日

需要查询返回日期:6月20日

当前日期:2015年6月20日

所以,它应该与当前日期进行比较,并返回上述情况


总年数:1年

您可以使用
DATEPART
剪切日期的各个部分

见:

这样,您应该能够比较日期,例如在
where
-子句中

由于提问者需要的日期不是整数,他可以使用
DATENAME
函数:

SELECT DATEPART(day,currentDate), DATENAME(month, currentDate)
SELECT DATEDIFF(year, '2014-06-20', GETDATE()) AS YearDiff
由于
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

若要获得所需的结果,请使用或函数。也可以看看优秀的文章:

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

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

SELECT DATEPART(day,currentDate), DATENAME(month, currentDate)
SELECT DATEDIFF(year, '2014-06-20', GETDATE()) AS YearDiff

问题不够清楚!!!!如何仅从日期(2014年6月20日)开始获取日期和月份。下一部分:它应该与当前日期进行比较,比如今天是2015年6月20日,它应该返回按照今天日期完成的1年。它以整数(1,2,3)格式返回月份。。我需要MMM格式的月份(JUN),您可以使用
DATENAME
(请参阅:)但它不支持MMM格式。嗯。我增加了两种获取月份名称的方法。谢谢,让我试试@Ionic@ManishGoswami如果对您有效,您可以将该问题标记为您的答案。:-)