根据月份名称从SQL中获取记录

时间:2018-09-10 18:51:23

标签: sql sql-server sql-server-2016

enter image description here 这就是我的表格结构和数据。

现在,我想根据ExpenseDate列中的Month过滤数据。 那么我该如何实现呢? 我正在尝试

  

从tblExpenses中选择*,其中(ExpenseDate = MONTH('April'))

但是它抛出一个错误:“从字符串转换日期和/或时间时转换失败。” 请帮忙。谢谢。

2 个答案:

答案 0 :(得分:2)

您将month()放在错误的列上。可以应用于ExpensesDate

select *
from tblExpenses
where month(ExpenseDate) = 4;

请注意,month()返回一个数字,而不是月份的名称。

我认为您更可能希望从特定的 4月,而不是每年的 4月开始记录。表示为:

where ExpenseDate >= '2018-04-01' and ExpenseDate < '2018-05-01'

答案 1 :(得分:0)

我认为您的where子句刚刚被颠倒,我想您想要这个(并将单词更改为数字)

select * from tblExpenses where Month(ExpenseDate) = 4