2017-04-03 3 views
0

PostgreSQLで日付が今日の日付よりも小さい属性を持つテーブルを作成するにはどうすればよいですか? 日付が今日よりも小さい属性を持つテーブルを作成する方法

この

は私がやろうとしていますされているもの:

CREATE TABLE Player(
dob DATE CHECK(dob < today's date) NOT NULL 
/*other attributes and constraints omitted*/ 
); 

を、これは可能ですか?

ありがとうございます!

+1

'check(dob

+0

いいえ、私はcheck (dob < now())と何の問題もありません。これはまさに私が探していたものです。ありがとう! @GordonLinoff – 48502104

答えて

0

ドゥプラスa time

select 
    current_date, 
    current_date::timestamp, 
    now(), 
    current_date < now(), 
    current_date < current_date; 
    date |  timestamp  |    now    | ?column? | ?column? 
------------+---------------------+-------------------------------+----------+---------- 
2017-04-04 | 2017-04-04 00:00:00 | 2017-04-04 11:54:39.703732+00 | t  | f 
0

この回答は@Gordon Linoffにあります。

は、彼は私がPostgreSQLが提供now()機能を使用して提案しました。

now()関数は、現在の日付と時刻を返します。

詳細については、https://www.postgresql.org/docs/8.0/static/functions-datetime.htmlを参照してください。

次のように私の結果のテーブルが見えます:dateは常に(ほぼ)dateあるnowよりも低くなるようそれはcurrent_dateないnow()にする必要がある

check (dob < current_date) 

CREATE TABLE Player(
dob DATE CHECK(dob < now()) NOT NULL 
/*other attributes and constraints omitted*/ 
); 
+0

それは間違っています。正しいバージョンは 'dob

+0

ああ、現在の日付を返すので、current_dateは正しいと思います。しかし、now()関数は現在の日付と時刻を返します。 current_dateではなくnow()を使用すると、違いが出るでしょうか? @ClodoaldoNeto – 48502104

+0

私の答えをチェック –

関連する問題