回答編集履歴
1
加筆
answer
CHANGED
@@ -4,4 +4,24 @@
|
|
4
4
|
|
5
5
|
> time、timestampおよびintervalは秒フィールドに保有されている小数点以下の桁数を指定する精度値pをオプションで受け付けます。 デフォルトでは、精度についての明示的な限界はありません。 pの許容範囲は0から6です。
|
6
6
|
|
7
|
-
timestamp(0)で使えばいいと思う。
|
7
|
+
timestamp(0)で使えばいいと思う。
|
8
|
+
|
9
|
+
---
|
10
|
+
|
11
|
+
CURRENT_TIMESTAMPについても触れておくと、
|
12
|
+
PostgreSQLでは現在タイムスタンプの取得にいくつかやり方があって、
|
13
|
+
場合によって使い分けなきゃいけない。
|
14
|
+
|
15
|
+
[9.9.4. 現在の日付/時刻](https://www.postgresql.jp/document/12/html/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT)
|
16
|
+
|
17
|
+
> transaction_timestamp()
|
18
|
+
> statement_timestamp()
|
19
|
+
> clock_timestamp()
|
20
|
+
> timeofday()
|
21
|
+
> now()
|
22
|
+
|
23
|
+
> transaction_timestamp()はCURRENT_TIMESTAMPと等価ですが、明確に何を返すかを反映する名前になっています。 statement_timestamp()は現在の文の実行開始時刻を返すものです(より具体的にいうと、直前のコマンドメッセージをクライアントから受け取った時刻です)。
|
24
|
+
> statement_timestamp()およびtransaction_timestamp()はトランザクションの最初のコマンドでは同じ値を返しますが、その後に引き続くコマンドでは異なる可能性があります。
|
25
|
+
> clock_timestamp()は実際の現在時刻を返しますので、その値は単一のSQLコマンドであっても異なります。
|
26
|
+
> timeofday()はPostgreSQLの歴史的な関数です。 clock_timestamp()同様、実際の現在時刻を返しますが、timestamp with time zone型の値ではなく、整形されたtext文字列を返します。
|
27
|
+
> now()はtransaction_timestamp()と同じもので、伝統的なPostgreSQL関数です。
|