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

JulianDay()関数がSQLiteでどのように機能するか

    SQLite julianday() 関数は、紀元前4714年11月24日のグリニッジの正午からの日数を返します。 (先発グレゴリオ暦を使用)。

    先発ユリウス暦を使用している場合、これは紀元前4713年1月1日月曜日です。

    ユリウス日は、ユリウス日が始まってからの連続した日数です。通常、天文学者やソフトウェアなどが2つのイベント間の経過日数を計算するために使用します。

    この関数を使用するには、時間文字列に加えて、任意の(オプションの)修飾子を指定する必要があります。モディファイアを使用すると、日数を追加したり、現地時間に設定したりするなど、日付を変更できます。

    構文

    構文は次のようになります:

    julianday(timestring, modifier, modifier, ...)

    timestring 引数は有効な時間文字列である必要があります。

    modifier 引数はオプションです。 1つ以上の修飾子を指定できます。修飾子を指定する場合は、有効な修飾子である必要があります。

    julianday()を示す例を次に示します。 1つの引数で使用されている関数。

    SELECT julianday('now');

    結果:

    2458968.52391635

    now 時間文字列はユリウス日に変換されます。

    修飾子を追加する

    修飾子を使用して、前の結果を変更できます。これが例です。

    SELECT julianday('now', '+3 hours');

    結果:

    2458968.65149612

    複数の修飾子

    前述のように、1つ以上の修飾子を追加できます。前の例に別の修飾子を追加する例を次に示します。

    SELECT julianday('now', '+3 hours', 'localtime');

    結果:

    2458969.0685371 

    ユリウス日()とstrftime()

    julianday() 関数は、strftime('%J', ...)とまったく同じ結果を返します。 戻り値。 julianday() 関数はそれを行うためのより便利な方法です。

    SELECT 
      julianday('now'),
      strftime('%J', 'now');

    結果:

    julianday('now')  strftime('%J', 'now')
    ----------------  ---------------------
    2458968.52807836  2458968.528078356    

    日付範囲

    すべてのSQLite日付および時刻関数と同様に、julianday() 0000-01-0100:00:00から9999-12-3123:59:59(ユリウス日番号1721059.5から5373484.5)の間の日付でのみ機能します。

    その範囲外の日付の場合、結果は未定義です。


    1. SQLの完了。成功と失敗の物語

    2. MicrosoftAccessでインベントリデータベースを作成する方法

    3. PDO例外を処理する方法

    4. MySQLまたはPostgreSQLを使用したDrupalWebサイトのデータベーススイッチオーバーとフェイルオーバー