PostgreSQL/月末を求める方法
の編集
Top
/
PostgreSQL
/
月末を求める方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
PostgreSQL/template0とtemplate1の違いについて
#navi(../) * PostgreSQLで月末を求める方法 [#zd9abe84] SQLを使って指定した年月の月末日(28日or29日or30日or31日)を取得する例を以下に記します。 #htmlinsert(db-top.html) #contents * 関連サイト [#na9f764d] -[[PostgreSQL 11.5文書 9.9. 日付/時刻関数と演算子>https://www.postgresql.jp/document/11/html/functions-datetime.html]] * 使用したPostgreSQLバージョンなど [#ze446ba0] PostgreSQL 11.5 sakuradb=# select version(); version --------------------------------------------------------------------------------------------------------------------------------- PostgreSQL 11.5 (Raspbian 11.5-1+deb10u1) on arm-unknown-linux-gnueabihf, compiled by gcc (Raspbian 8.3.0-6+rpi1) 8.3.0, 32-bit (1 行) * date_truncを使って月末日の取得 [#o297cda8] 本日(本月)の月末日、1月から12月までの月末日とうるう年の2月月末日を~ 取得するSQLおよび実行結果を以下に記します。 ** 本月の月末日を取得する [#ef3c64b1] 本月の月末を取得する場合のSQL構文は以下のようになります。 select date_trunc('month',now()) + '1 month' + '-1 days'; now()で本日を取得し、'month'を指定し月精度で切り捨てたあと、~ 一か月を加算し一日減算することにより月末日を算出しています。 sakuradb=# select date_trunc('month',now()) + '1 month' + '-1 days'; ?column? ------------------------ 2019-11-30 00:00:00+09 (1 行) ** 1月から12月の月末日を取得する [#g245033c] 以下、2019年1月から12月までの月末をdate_trunc関数を使って取得するSQLになります。 -SQL select date_trunc('month',to_date('2019/01/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/02/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/03/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/04/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/05/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/06/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/07/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/08/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/09/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/10/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/11/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/12/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; -実行結果 sakuradb=# select date_trunc('month',to_date('2019/01/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-01-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/02/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-02-28 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/03/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-03-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/04/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-04-30 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/05/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-05-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/06/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-06-30 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/07/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-07-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/08/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-08-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/09/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-09-30 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/10/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-10-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/11/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/12/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-11-30 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/12/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-12-31 00:00:00+09 (1 行) **うるう年の2月月末日を取得する [#r55e6e31] 2020年2月の月末日を取得します。 sakuradb=# select date_trunc('month',to_date('2020/02/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2020-02-29 00:00:00+09 (1 行) 以上、PostgreSQLのdate_trunc関数を使って指定した月の月末日を取得する方法でした。 #htmlinsert(db-btm.html)
タイムスタンプを変更しない
#navi(../) * PostgreSQLで月末を求める方法 [#zd9abe84] SQLを使って指定した年月の月末日(28日or29日or30日or31日)を取得する例を以下に記します。 #htmlinsert(db-top.html) #contents * 関連サイト [#na9f764d] -[[PostgreSQL 11.5文書 9.9. 日付/時刻関数と演算子>https://www.postgresql.jp/document/11/html/functions-datetime.html]] * 使用したPostgreSQLバージョンなど [#ze446ba0] PostgreSQL 11.5 sakuradb=# select version(); version --------------------------------------------------------------------------------------------------------------------------------- PostgreSQL 11.5 (Raspbian 11.5-1+deb10u1) on arm-unknown-linux-gnueabihf, compiled by gcc (Raspbian 8.3.0-6+rpi1) 8.3.0, 32-bit (1 行) * date_truncを使って月末日の取得 [#o297cda8] 本日(本月)の月末日、1月から12月までの月末日とうるう年の2月月末日を~ 取得するSQLおよび実行結果を以下に記します。 ** 本月の月末日を取得する [#ef3c64b1] 本月の月末を取得する場合のSQL構文は以下のようになります。 select date_trunc('month',now()) + '1 month' + '-1 days'; now()で本日を取得し、'month'を指定し月精度で切り捨てたあと、~ 一か月を加算し一日減算することにより月末日を算出しています。 sakuradb=# select date_trunc('month',now()) + '1 month' + '-1 days'; ?column? ------------------------ 2019-11-30 00:00:00+09 (1 行) ** 1月から12月の月末日を取得する [#g245033c] 以下、2019年1月から12月までの月末をdate_trunc関数を使って取得するSQLになります。 -SQL select date_trunc('month',to_date('2019/01/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/02/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/03/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/04/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/05/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/06/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/07/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/08/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/09/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/10/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/11/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/12/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; -実行結果 sakuradb=# select date_trunc('month',to_date('2019/01/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-01-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/02/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-02-28 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/03/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-03-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/04/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-04-30 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/05/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-05-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/06/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-06-30 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/07/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-07-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/08/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-08-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/09/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-09-30 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/10/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-10-31 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/11/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; select date_trunc('month',to_date('2019/12/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-11-30 00:00:00+09 (1 行) sakuradb=# select date_trunc('month',to_date('2019/12/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2019-12-31 00:00:00+09 (1 行) **うるう年の2月月末日を取得する [#r55e6e31] 2020年2月の月末日を取得します。 sakuradb=# select date_trunc('month',to_date('2020/02/01','YYYY/MM/DD')) + '1 month' + '-1 days' as end_of_month; end_of_month ------------------------ 2020-02-29 00:00:00+09 (1 行) 以上、PostgreSQLのdate_trunc関数を使って指定した月の月末日を取得する方法でした。 #htmlinsert(db-btm.html)
テキスト整形のルールを表示する