如何编写WHERE语句以匹配该月最后一天的日期?

时间:2015-03-23 15:55:25

标签: sql sybase

我正在查询时间序列数据库表,并且我希望返回created_date在该月的最后一天(月末)的数据。架构如下所示:

|     int     |  varchar(12) |  smalldatetime | 
| primary key |     data     |  created_date  |

我要编写的查询类似于

SELECT * FROM my_table where create_date IS end_of_month

Sybase中是否有内置函数?如果没有,那么创建这样的查询的逻辑是什么?可以在不编写函数的情况下完成吗?

我已经能够编写一个函数来获取任何给定月份的最后一天。我现在正在寻找的是一种匹配所有给定月末的方法。

1 个答案:

答案 0 :(得分:0)

你可以使用dateadd并删除一天DATEADD(day,-1,1stDayOfMonth)

-- Date format mm/dd/yyyy and calculate the last day of month m-1 
-- example for 03/23/2015 dateadd calulate => 28/02/2015

DATEADD(day,-1, RTRIM (cast(datepart(mm,getdate()) as varchar(2)))+'/01/'+cast(datepart(yyyy,getdate()) as  varchar(4)) )