sql >> データベース >  >> RDS >> PostgreSQL

clock_timestamp()がPostgreSQLでどのように機能するか

    PostgreSQLでは、clock_timestamp() 現在の日付と時刻を返す非SQL標準の時刻関数です。

    この関数の重要な考慮事項は、ステートメントの実行中に結果が変化することです。したがって、1つのステートメント内で関数を複数回呼び出すと、ステートメントのさまざまな部分で異なる結果が得られる可能性があります。

    構文

    構文は簡単です:

    clock_timestamp()

    したがって、パラメータを受け入れません。

    これがデモンストレーションの基本的な例です。

    SELECT clock_timestamp();

    結果:

    2020-07-01 09:53:22.823731+10

    複数の呼び出し

    これは、単一のSQLステートメント内で関数を複数回呼び出したときに結果がどのように異なるかを示す基本的な例です。

    \x
    SELECT 
      clock_timestamp(),
      pg_sleep(5),
      clock_timestamp(),
      pg_sleep(3),
      clock_timestamp();

    結果(垂直出力を使用):

    clock_timestamp | 2020-07-01 09:58:29.744838+10
    pg_sleep        |
    clock_timestamp | 2020-07-01 09:58:34.813448+10
    pg_sleep        |
    clock_timestamp | 2020-07-01 09:58:37.859197+10

    ここでは、pg_sleep()を使用しました 実行を数秒間遅らせる関数。最初の呼び出しは実行を5秒間遅らせ、2番目の呼び出しは実行を3秒間遅らせます。

    clock_timestamp()のたびに と呼ばれ、実際の時間は少し異なりました。これは主にpg_sleep()によるものです 機能しますが、クエリの実行速度によっては、機能がない場合でも異なる可能性があります。

    ここでもpg_sleep()はありません 呼び出します。

    SELECT 
      clock_timestamp(),
      clock_timestamp(),
      clock_timestamp();

    結果(垂直出力を使用):

    clock_timestamp | 2020-07-01 10:03:10.828557+10
    clock_timestamp | 2020-07-01 10:03:10.828558+10
    clock_timestamp | 2020-07-01 10:03:10.828558+10

    これらの例では、垂直出力(通常はpsqlでは拡張表示と呼ばれます)を使用して、結果を読みやすくしています。

    \xを使用して、psqlの拡張表示を切り替えることができます 。


    1. SQLServerのトリガーイベントタイプの階層リストを返すクエリ

    2. MicrosoftAccessテンプレートを使用する利点

    3. PHPをサポートする無料のWebホスティング

    4. SQLServerで複数のNULL値を許可する一意の制約を実装する適切な方法