平常我的寫法:
付款日期 BETWEEN " & 單月第1日 & " AND " & 單月最後日
請問有比較簡單的寫法嗎?
可以用(年+月)查詢嗎?
如果你的付款日期欄位的格式為YYYYMMDD,且為文字格式
那也可以用以下方式
<pre class="c" name="code">付款日期 like 'YYYYMM%'
YYYY指西元年
MM指月
也可以使用
<pre class="c" name="code">convert(varchar(7), <date_field>, 120) = 'YYYY-MM'
不過好像沒有比較簡單~~
where year(日期欄位) = @year and month(日期欄位) = @month
這樣也可以在SQL Server指定年月做為篩選條件
若該欄為字串型態
where left(付款日期,7)='2014-01'
若該欄為datetime型態
where year(付款日期)=2014 and month(付款日期)=1
ps.這答案,應該全面的高手都有回答過了 ^.^
可以參考保哥的資料
你應該是想抓每個月的資料吧
所以每個月你可以下這個語法,不用去指定年月
SELECT *
FROM TABLE_NAME
WHERE xxx BETWEEN DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
AND DATEADD(mm, 1, DATEADD(dd, -1, DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)))
select convert(char(6) ,GETDATE() ,112)
這是我目前用起來最短的抓年月 的方法..
不知道是不是還有更短的...
供參考~