回答編集履歴
1
加筆
test
CHANGED
@@ -11,3 +11,43 @@
|
|
11
11
|
|
12
12
|
|
13
13
|
timestamp(0)で使えばいいと思う。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
---
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
CURRENT_TIMESTAMPについても触れておくと、
|
22
|
+
|
23
|
+
PostgreSQLでは現在タイムスタンプの取得にいくつかやり方があって、
|
24
|
+
|
25
|
+
場合によって使い分けなきゃいけない。
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
[9.9.4. 現在の日付/時刻](https://www.postgresql.jp/document/12/html/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT)
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
> transaction_timestamp()
|
34
|
+
|
35
|
+
> statement_timestamp()
|
36
|
+
|
37
|
+
> clock_timestamp()
|
38
|
+
|
39
|
+
> timeofday()
|
40
|
+
|
41
|
+
> now()
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
> transaction_timestamp()はCURRENT_TIMESTAMPと等価ですが、明確に何を返すかを反映する名前になっています。 statement_timestamp()は現在の文の実行開始時刻を返すものです(より具体的にいうと、直前のコマンドメッセージをクライアントから受け取った時刻です)。
|
46
|
+
|
47
|
+
> statement_timestamp()およびtransaction_timestamp()はトランザクションの最初のコマンドでは同じ値を返しますが、その後に引き続くコマンドでは異なる可能性があります。
|
48
|
+
|
49
|
+
> clock_timestamp()は実際の現在時刻を返しますので、その値は単一のSQLコマンドであっても異なります。
|
50
|
+
|
51
|
+
> timeofday()はPostgreSQLの歴史的な関数です。 clock_timestamp()同様、実際の現在時刻を返しますが、timestamp with time zone型の値ではなく、整形されたtext文字列を返します。
|
52
|
+
|
53
|
+
> now()はtransaction_timestamp()と同じもので、伝統的なPostgreSQL関数です。
|