SQL Server : calculating date ranges

标签 sql sql-server tsql sql-server-2008

我正在尝试获取从本月初(上一年)到当天(上一年)的日期范围。有没有办法简化这段代码?

SELECT 'From the beginning of month to this day, previous year' AS Label,
       CONVERT (DATETIME, CAST (DATEPART(YY, GETDATE()) - 1 AS CHAR (4)) + CASE 
                                                                           WHEN DATEPART(MM, GETDATE()) < 10 THEN '-0' + CAST (DATEPART(MM, GETDATE()) AS CHAR (1)) ELSE '-' + CAST (DATEPART(MM, GETDATE()) AS CHAR (2)) 
                                                                           END + '-01') AS Begin_date,
       CONVERT (DATETIME, CAST (DATEPART(YY, GETDATE()) - 1 AS CHAR (4)) + CASE 
                                                                           WHEN DATEPART(MM, GETDATE()) < 10 THEN '-0' + CAST (DATEPART(MM, GETDATE()) AS CHAR (1)) ELSE '-' + CAST (DATEPART(MM, GETDATE()) AS CHAR (2)) 
                                                                           END + CASE 
                                                                                 WHEN DATEPART(DD, GETDATE()) < 10 THEN '-0' + CAST (DATEPART(DD, GETDATE()) AS CHAR (1)) ELSE '-' + CAST (DATEPART(DD, GETDATE()) AS CHAR (2)) 
                                                                                 END) AS End_date

最佳答案

SELECT  'Anything' as Label
        ,DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0) as firstdaythismonth
        ,DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) as today
        ,DATEADD(year, -1, DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)) as firstdaythismonth_lastyear
        ,DATEADD(year, -1, DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)) as today_lastyear

关于SQL Server : calculating date ranges,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5539517/

相关文章:

mysql - 为什么它没有给我独特的值(value)观

php - 在 mysql 中选择每周明智的日期

SQL Server,结合 LIKE 和 IN?

sql-server - SQL中exec的微妙之处

SQL从相关键中获取记录组合列表

mysql - 比较最接近交易日期的有效历史记录

sql-server - SQL Server try catch inside a while loop statement..异常后循环会正常继续吗?

sql - 将具有相同标签的 XML 值分隔到不同的行 SQL Server

php - “PDOException”消息“SQLSTATE[22001] : String data, 右截断:0

SQL 选择列.. IF NULL 然后选择其他列