Oracle用法 計算日期
要換算成 西元年 就是+ 19110000
要換算成 民國年 就是 - 19110000
計算欄位與今天當日的差距 by 天為單位
SysDate - to_date(欄位名稱+19110000,'YYYYMMDD')
計算欄位與今日的差距 by 月為單位
months_between(SysDate, to_date(欄位名稱+19110000,'YYYYMMDD'))
如果還要再計算到年的話 那就改成 天除365 月除12
希望找到今天日期的前一天 加上算出來的欄位 要長度七碼 需要補齊幾碼的話
rpad(trim(to_char(sysdate-1,'YYYYMMDD')-19110000),7,' ')
直接從SQL 裡面去做運算判斷 他是不是符合條件資格 符合就呈現要的字的話 如果 大於A 而且 又等於B
select(case when (months_between(sysdate, to_date(欄位1+19110000,'YYYYMMDD'))/12)>A and 欄位2='B' then '所要呈現的文字說明' end)as 新欄位名稱 from table_name
目前分類:SQL語法 (2)
- Apr 27 Fri 2007 11:34
如何透過SQL 直接計算出日期
- Oct 02 Tue 2007 09:31
計算兩個日期差距幾天-sql server版本
之前用的oracle資料庫 去計算日期相減
改到 sql server上就有差異 紀錄一下免的忘記
如果欄位並非日期格式的話 要先轉換成日期格式
CONVERT(datetime,日期欄位1),CONVERT(datetime,日期欄位2)
然後再將轉換好的丟進去做運算
DATEDIFF(datepart ,startdate,enddate)
所以結合一下 就可以寫成下面的方式
DATEDIFF (day,CONVERT(datetime,日期欄位1),CONVERT(datetime,日期欄位2))
備註 參數的部份 可以替換
改到 sql server上就有差異 紀錄一下免的忘記
如果欄位並非日期格式的話 要先轉換成日期格式
CONVERT(datetime,日期欄位1),CONVERT(datetime,日期欄位2)
然後再將轉換好的丟進去做運算
DATEDIFF(datepart ,startdate,enddate)
所以結合一下 就可以寫成下面的方式
DATEDIFF (day,CONVERT(datetime,日期欄位1),CONVERT(datetime,日期欄位2))
備註 參數的部份 可以替換
日期部分 | 縮寫 |
---|---|
年 |
yy、yyyy |
季 |
qq、q |
月 |
mm、m |
一年當中的第幾天 |
dy、y |
日 |
dd、d |
週 |
wk、ww |
星期幾 |
dw |
時 |
hh |
分 |
mi、n |
秒 |
ss、s |
毫秒 |
ms |