web-dev-qa-db-ja.com

postgresqlの挿入クエリに現在の日時を挿入する方法

INSERT into Group (Name,CreatedDate) VALUES ('Test',UTC_TIMESTAMP(), 1);

これは、mysqlで現在の日付時刻を挿入するために使用したクエリです。これをpostgresqlで使用していると、以下のエラーが発生します。

    HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********

ERROR: function utc_timestamp() does not exist
SQL state: 42883

私はnow()を使用して以下のように試しましたが、"2016-07-07 17:01:18.410677"のように挿入しています。 'yyyymmdd hh:mi:ss tt'形式で挿入する必要があります。

INSERT into Group (Name,CreatedDate) VALUES ('Test',UTC_TIMESTAMP(), 1);

上記の形式でpostgresqlの挿入クエリに現在の日付時刻を挿入する方法は?

36
Shesha

timestamp(またはdateまたはtime列)doNOTには「フォーマット」がありません。

表示されるフォーマットは、使用しているSQLクライアントによって適用されます。


現在の時刻を挿入するには、current_timestampマニュアルに記載されているとおり を使用します。

INSERT into "Group" (name,createddate) 
VALUES ('Test', current_timestamp);

別の形式でその値をdisplayするには、SQLクライアントの構成を変更するか、データを選択するときに値をフォーマットします。

select name, to_char(createddate, ''yyyymmdd hh:mi:ss tt') as created_date
from "Group"

psql(デフォルトのコマンドラインクライアント)の場合、構成パラメーターDateStyleを使用して表示形式を構成できます。 https://www.postgresql.org/docs/current/static/runtime -config-client.html#GUC-DATESTYLE

67

現在の日時については、postgresqlの挿入クエリでnow()関数を使用できます。

次のリンクも参照できます。

タイムゾーンNOT NULLのないデータ型タイムスタンプのpostgresにステートメントを挿入

3
Krutika Patel

もちろん、current_timestamp()の結果をフォーマットできます。公式の documentation にあるさまざまなフォーマット関数をご覧ください。

0
nidhoeggr09