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

選択リストで GETDATE() 関数を 2 回選択すると、両方に同じ値が適用されますか?

    いいえ、毎回同じ値を返す保証はありません。 GetDate() への個々の参照 はランタイム定数であり、クエリ全体でその値を保持します...

    SELECT GETDATE()
    FROM large_table
    

    クエリの実行にかかる時間に関係なく、すべての行で同じ値を返します。

    しかし、異なる参照が同じ値を持つという保証はありません。

    これは以下のように見ることができます

    SET NOCOUNT ON;
    
    DECLARE @T TABLE 
    (
    rownum INT IDENTITY(1,1) PRIMARY KEY,
    d1 DATETIME,
    d2 DATETIME
    )
    
    WHILE (5 > (SELECT COUNT(*) FROM @T WHERE d1 <> d2))
        BEGIN
        DELETE FROM @T WHERE d1 = d2
        INSERT INTO @T 
        SELECT GETDATE(),GETDATE()
        END
    
    SELECT * FROM @T
    

    結果の例

    rownum      d1                      d2
    ----------- ----------------------- -----------------------
    22381       2011-05-18 12:24:14.433 2011-05-18 12:24:14.437
    30912       2011-05-18 12:24:15.420 2011-05-18 12:24:15.423
    43234       2011-05-18 12:24:16.717 2011-05-18 12:24:16.720
    113360      2011-05-18 12:24:24.210 2011-05-18 12:24:24.213
    147855      2011-05-18 12:24:27.817 2011-05-18 12:24:27.820
    


    1. PHPからMySQLへのSSL接続

    2. CSVファイルからCSVファイルのヘッダーを含むPostgreSQLテーブルにコピーするにはどうすればよいですか?

    3. あなたのビジネスのためのユーザーフレンドリーなデータベースを選択する方法

    4. Oracleで例外が発生した後もカーソルループ処理を続行する方法