Latest web development tutorials

SQLiteの日付と時刻

SQLiteは以下の5つの日付と時刻の関数をサポートしています。

いいえ。 関数
1 日付(timestring、修飾子、修飾子、...) YYYY-MM-DDに日付フォーマットを返します。
2 時間(timestring、修飾子、修飾子、...) HH:MM:SS形式の復帰時間。
3 日時(timestring、修飾子、修飾子、...) YYYY-MM-DD HH:MM:SS形式で戻ります。
4 ユリウス通日(timestring、修飾子、修飾子、...) これは正午のカウントで11月24日に4714 BCグリニッジ時からの日数を返します。
5 strftime(フォーマット、timestring、修飾子、修飾子、...) これは最初のパラメータのフォーマット文字列を指定に従ってフォーマットされた日付を返します。 特定の形式を説明し、以下を参照してください。

5日付と時刻の関数のパラメータとして時刻の文字列。 時刻文字列は、ゼロまたは複数の修飾修飾子が続きます。 strftime()関数は、その最初の引数として文字列形式の書式を設定することができます。 以下は、時刻文字列と修飾子の異なる種類の詳細な説明があります。

時刻文字列

時刻文字列は、以下のいずれかの形式にすることができます。

序号时间字符串实例
1YYYY-MM-DD2010-12-30
2YYYY-MM-DD HH:MM2010-12-30 12:10
3YYYY-MM-DD HH:MM:SS.SSS2010-12-30 12:10:04.100
4MM-DD-YYYY HH:MM30-12-2010 12:10
5HH:MM12:10
6YYYY-MM-DDTHH:MM2010-12-30 12:10
7HH:MM:SS12:10:01
8YYYYMMDD HHMMSS20101230 121001
9now2013-05-07

あなたは、テキスト文字として日付と時刻を分離する「T」を使用することができます。

修飾子(修飾子)

時間文字列はバック5関数が戻るおよび/または時間の日付を変更しますゼロまたはそれ以上の修飾子を追跡することができます。 上記の5つの機能のいずれかが時間を返します。 右モディファイ左からSQLiteのに使用することができ、以下に記載されている修飾子に使用する必要があります。

  • NNN日

  • NNNの時間

  • NNN分

  • NNN.NNNN秒

  • NNNヶ月

  • NNN年

  • 月の開始

  • 年の開始

  • 一日の始まり

  • 平日N

  • unixepoch

  • localtimeの

  • UTC

フォーマット

SQLiteは非常に便利な関数strftime()任意の日付と時刻をフォーマットするを提供します。 あなたは、日付と時刻を交換するには、次の形式を使用することができます。

替换描述
%d一月中的第几天,01-31
%f带小数部分的秒,SS.SSS
%H小时,00-23
%j一年中的第几天,001-366
%J儒略日数,DDDD.DDDD
%m月,00-12
%M分,00-59
%s从 1970-01-01 算起的秒数
%S秒,00-59
%w一周中的第几天,0-6 (0 is Sunday)
%W一年中的第几周,01-53
%Y年,YYYY
%%% symbol

今度は、別のインスタンスを試してプロンプトにSQLiteを使用してみましょう。 以下は、現在の日付の計算であります:

sqliteの> SELECT日付( '今');
2013年5月7日

以下は、現在の月の最終日の計算であります:

sqliteの> SELECT日付( '今'、 '月の開始'、 '+ 1月'、 ' -  1日');
2013年5月31日

以下は、日付と時刻1092941466の与えられたUNIXタイムスタンプの計算です。

sqliteの> SELECT日時(1092941466、「unixepoch ');
2004年8月19日午前18時51分06秒

以下は、指定された日付と時刻のUNIXタイムスタンプ1092941466比較的ローカルタイムゾーンの計算です。

sqliteの> SELECT日時(1092941466、「unixepoch '、' localtimeの ');
2004年8月19日11時51分06秒

以下は、現在のUNIXタイムスタンプの計算です。

sqliteの> SELECT日時(1092941466、「unixepoch '、' localtimeの ');
1367926057

以下は、署名からの日数米国「独立宣言」の計算であります:

sqliteの> SELECTユリウス通日( '今') - ユリウス通日( '1776年7月4日');
86504.4775830326

以下は、特定の時点で、2004年からの秒数を計算します:

sqliteの> SELECTのstrftime( '%s'が、 '今') - のstrftime( '%s'は、 '2004-01-01二時34分56秒');
295 001 572

以下は、その年の日付の10月の第一火曜日の計算であります:

sqliteの> SELECT日付( '今'、 '今年の開始'、 '+ 9ヶ月」、「平日2');
2013年10月1日

以下は、計時秒でUNIXエポックから計算される(strftimeのに似て( '%s'は、 '今')を、別のは小数部を含むがあるということです):

sqliteの> SELECT(ユリウス通日( '今') -  2440587.5)* 86400.0。
1,367,926,077.12598

日付の書式UTCおよび現地時間、変換の値が、間には、次のように、UTCやlocaltime修飾子を使用します。

sqliteの> SELECT時間('12:00 '、' localtimeの ');
五時00分00秒
sqliteの> SELECT時間('12:00 '、' UTC ');
19時00分00秒