【发布时间】:2015-03-07 20:26:36
【问题描述】:
我的表格包含两列,一列用于月份,另一列用于年份。基于这两列,我想要该财政年度的所有记录。例如。如果月份是 10,年份是 2014,那么其财政年度将是 FY 01StApr14 - 31stMar15。
我如何编写 SQL 选择查询来获取在 FY 01stApr14-31stMar15 之间创建的所有记录,这些记录基于月份和年份在该表中可用。
M 尝试以下查询,但收到错误消息为“关键字“和”附近的语法不正确。”
with cte as
(
select id,iono,iomonth,ioyear,
convert(datetime,'01/'+right('00' + convert(varchar(10),iomonth,2),2)
+ '/' +convert(varchar(4),IOyear),103) as FinDate from iodetails where iono=12345
)
select month(findate),* from cte where iono=12345 and
findate between
case
when month(findate)>=4
then convert(datetime,'01/'+'04'+ '/' +convert(varchar(4),IOyear),103) and
convert(datetime,'31/'+ '03' + '/' +convert(varchar(4),IOyear+1),103)
else
convert(datetime,'01/'+'04'+ '/' +convert(varchar(4),IOyear),103) and
convert(datetime,'31/'+ '03' + '/' +convert(varchar(4),IOyear),103)
end
【问题讨论】:
标签: sql sql-server date select