从 sybase ase 获取上一年的最后一天
get last day of previous year from sybase ase
我需要将 where 条件设置为上一年的最后一个日期。
我正在寻找使用 dateadd 函数的解决方案,但我无法弄清楚。这段代码给了我当月的最后一天。但是如何获得去年 12 月的最后一天 '2015-12-31' 已经尝试了不同的方法,但这一切都给了我奇怪的结果。
declare @today datetime
select @today=getdate()
select convert(varchar(10), dateadd(dd, -day(dateadd(mm, 1, @today)),dateadd(mm, 1, @today)),101)
假设使用 Sybase ASE,而不是 ASA 或 IQ:
declare @lastyear smallint, @dec31 datetime
select @lastyear = datepart(year,getdate()) - 1
select @dec31 = convert(datetime, convert(char(4), @lastyear) + "1231")
select @dec31
这会产生
--------------------------
Dec 31 2015 12:00AM
@lastyear 包含最后一年 2015,然后将文本“2015”连接成“20151231”,这是 AAAAMMDD 字符格式的所需日期。下一步将其转换为日期、日期时间或小日期时间。 @dec31 存储该结果。
select convert(datetime, convert(varchar, datepart(year, getdate()) - 1 ) + '/12' + '/31')
2015 年 12 月 31 日12:00AM
SELECT DATEADD(DD,-1,DATEADD(YEAR, DATEDIFF(YEAR, '', GETDATE())+1, ''))
我需要将 where 条件设置为上一年的最后一个日期。 我正在寻找使用 dateadd 函数的解决方案,但我无法弄清楚。这段代码给了我当月的最后一天。但是如何获得去年 12 月的最后一天 '2015-12-31' 已经尝试了不同的方法,但这一切都给了我奇怪的结果。
declare @today datetime
select @today=getdate()
select convert(varchar(10), dateadd(dd, -day(dateadd(mm, 1, @today)),dateadd(mm, 1, @today)),101)
假设使用 Sybase ASE,而不是 ASA 或 IQ:
declare @lastyear smallint, @dec31 datetime
select @lastyear = datepart(year,getdate()) - 1
select @dec31 = convert(datetime, convert(char(4), @lastyear) + "1231")
select @dec31
这会产生
--------------------------
Dec 31 2015 12:00AM
@lastyear 包含最后一年 2015,然后将文本“2015”连接成“20151231”,这是 AAAAMMDD 字符格式的所需日期。下一步将其转换为日期、日期时间或小日期时间。 @dec31 存储该结果。
select convert(datetime, convert(varchar, datepart(year, getdate()) - 1 ) + '/12' + '/31')
2015 年 12 月 31 日12:00AM
SELECT DATEADD(DD,-1,DATEADD(YEAR, DATEDIFF(YEAR, '', GETDATE())+1, ''))