iT邦幫忙

0

sql 日期語法 抓上個月的年月如何寫

sql

資料庫的傳票日期要自動抓上個月的年月要如何寫, 第一次寫的人,
是用to_char但要如何下呢, 謝謝大家 感恩 by chin

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

18
外獅佬
iT邦大師 1 級 ‧ 2010-03-23 10:25:56

SQL Server的寫法:

<pre class="c" name="code">SELECT YEAR(DATEADD(MOHTH,-1,日期)) AS y, MONTH(DATEADD(MOHTH,-1,日期)) AS m

Oracle的寫法:

<pre class="c" name="code">SELECT YEAR(ADD_MONTHS(日期,-1)) AS y, MOHTH(ADD_MONTHS(日期,-1)) AS m

MySQL的寫法:

<pre class="c" name="code">SELECT YEAR(DATE_ADD(日期,INTERVAL -1 MONTH)) AS y,MONTH(DATE_ADD(日期,INTERVAL -1 MONTH)) AS m
yymoney iT邦新手 5 級 ‧ 2010-03-30 14:42:38 檢舉

請問可以這樣寫嗎?
TO_CHAR(TODAY-31,'%Y/%m')
直接用today-31 就為上月嗎出來會正確碼, thanks by yymoney

外獅佬 iT邦大師 1 級 ‧ 2010-03-30 14:51:48 檢舉

==.....today-31,可能是上上個月耶...
28、29、30天的月份,減去31天,可能是上上個月的日期。

外獅佬 iT邦大師 1 級 ‧ 2010-03-30 15:01:24 檢舉

看來您是使用Oracle的,以下的程式碼,應該符合你的需求吧

<pre class="c" name="code">SELECT TO_CHAR(ADD_MONTHS(sysdate,-1),'yyyymm') AS lastmonth FROM 資料庫
0
jeffreyhu
iT邦新手 4 級 ‧ 2010-11-01 19:17:16

補充新增SQL:
INSERT INTO ( cdate ) values (select TO_CHAR(ADD_MONTHS(sysdate,-1),'yyyymm') from dual )

我要發表回答

立即登入回答