Mysql pg oracle三種數據庫獲取月份、周的函數比較

這裏要獲取的月份和周不單單是一個數字,好比第23周,而是說以周來截斷一個日期,用來以周爲單位作統計。
因此要麼獲得的是 2015-05 要麼獲得 2015-05-03(假設3是這周的第一天), 或者獲得 2015-23 表示2015年第23周 也勉強能夠。code

  • 月份
    由於月份自己是date格式的一個substring,因此取月份都比較方便。
    M date_format(date, '%Y%M')
    P date_trunc('MONTH', date)
    O to_char(date, 'MM-YYYY') or TRUNC(date, 'MONTH' or 'MM') # 我認爲第二種更好orm


  • M CONCAT(YEAR(date), '/', WEEK(date)) 或者 FROM_DAYS(TO_DAYS(date) -MOD(TO_DAYS(date) -1, 7)) 後面這....看着就ugly.
    P date_trunc('WEEK', date)
    O TRUNC(date, 'WW')string

看起來MySQL最弱。PG表達最簡單,Oracle在表達WEEK的時候只能用W或者WW,而不能直接用「WEEK」。form

相關文章
相關標籤/搜索