2013-08-05 5 views
26

私は今月の最初の日に対応する '日付'タイプを取得しようとしています。基本的に私のテーブルの1つに日付が格納されていますが、今月の最初の日付にしたいので、今すぐ取得するトリガーを作成しようとしています。ポストグルで月の最初の日付を取得

答えて

57

date_trunc('month', current_date)を使用できます。 SELECTステートメントでデモンストレーションされています。 。 。

select date_trunc('month', current_date) 
2013-08-01 00:00:00-04 

キャスト・トゥデーを削除するには、

select cast(date_trunc('month', current_date) as date) 
2013-08-01 

あなたが特定している場合は、その列が常にストアのみ月の最初に、あなたはまた、CHECK制約を使用する必要がありますする必要があります。

create table foo (
    first_of_month date not null 
    check (extract (day from first_of_month) = 1) 
); 

insert into foo (first_of_month) values ('2015-01-01'); --Succeeds 
insert into foo (first_of_month) values ('2015-01-02'); --Fails 
 
ERROR: new row for relation "foo" violates check constraint "foo_first_of_month_check" 
DETAIL: Failing row contains (2015-01-02). 
2

SELECT TO_DATE( '2017年12月12日'、 'YYYY-MM-01')。

2017年12月1日

+0

この回答の問題は何ですか? – Victorqedu

+1

おそらくCURRENT_DATE()ではなく静的データを使用しただけですか? –

関連する問題