Tutorial klasik...login
Tutorial klasik SQLite
pengarang:php.cn  masa kemas kini:2022-04-13 17:05:02

Tarikh & Masa SQLite


SQLite menyokong lima fungsi tarikh dan masa berikut:

序号函数实例
1date(timestring, modifier, modifier, ...)以 YYYY-MM-DD 格式返回日期。
2time(timestring, modifier, modifier, ...)以 HH:MM:SS 格式返回时间。
3datetime(timestring, modifier, modifier, ...)以 YYYY-MM-DD HH:MM:SS 格式返回。
4julianday(timestring, modifier, modifier, ...)这将返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数。
5strftime(format, timestring, modifier, modifier, ...)这将根据第一个参数指定的格式字符串返回格式化的日期。具体格式见下边讲解。

Lima fungsi tarikh dan masa di atas mengambil rentetan masa sebagai parameter. Rentetan masa diikuti dengan sifar atau lebih pengubah suai. Fungsi strftime() juga boleh mengambil format rentetan format sebagai hujah pertamanya. Jenis rentetan masa dan pengubah suai yang berbeza akan diterangkan kepada anda secara terperinci di bawah.

Rentetan masa

Rentetan masa boleh dalam mana-mana format berikut:

序号时间字符串实例
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

Anda boleh menggunakan "T" sebagai aksara literal untuk memisahkan tarikh dan masa.

Pengubahsuai

Rentetan masa boleh diikuti oleh sifar atau lebih pengubah, yang akan menukar tarikh dan/atau masa yang dikembalikan oleh lima fungsi di atas. Mana-mana daripada lima fungsi di atas mengembalikan masa. Pengubah suai hendaklah digunakan dari kiri ke kanan dan pengubahsuai yang boleh digunakan dalam SQLite disenaraikan di bawah:

  • NNN hari

  • NNN jam

  • NNN minit

  • NNN.NNNN saat

  • NNN bulan

  • NNN tahun

  • permulaan bulan

  • permulaan tahun

  • permulaan hari

  • hari minggu N

  • unixepoch

  • waktu tempatan

  • utc

Pemformatan

SQLite menyediakan fungsi yang sangat mudah strftime() untuk memformat sebarang tarikh dan masa. Anda boleh memformat tarikh dan masa menggunakan penggantian berikut:

替换描述
%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

Instance

Sekarang mari cuba contoh lain menggunakan gesaan SQLite. Berikut adalah untuk mengira tarikh semasa:


sqlite> SELECT date('now');
2013-05-07

Berikut adalah untuk mengira hari terakhir bulan semasa:

sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31

Berikut adalah untuk mengira jumlah tarikh yang diberi cap masa UNIX 1092941466 Masa:

sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06

Begini cara mengira tarikh dan masa berbanding zon waktu tempatan untuk cap waktu UNIX tertentu 1092941466:

sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 11:51:06

Begini cara mengira cap masa UNIX semasa:

sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
1367926057

Di bawah Kira bilangan hari sejak penandatanganan Pengisytiharan Kemerdekaan Amerika Syarikat:

sqlite> SELECT julianday('now') - julianday('1776-07-04');
86504.4775830326

Berikut ialah pengiraan bilangan saat sejak detik tertentu pada tahun 2004:

sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572

Berikut ialah pengiraan yang pertama dalam bulan Oktober tahun itu Tarikh Selasa:

sqlite> SELECT date('now','start of year','+9 months','weekday 2');
2013-10-01

Berikut ialah masa dalam saat sejak zaman UNIX (serupa dengan strftime(' %s','now'), kecuali bahagian perpuluhan disertakan) :

sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598

Menukar antara nilai UTC dan masa tempatan Apabila memformat tarikh, gunakan pengubah suai utc atau masa tempatan, seperti ini:

sqlite> SELECT time('12:00', 'localtime');
05:00:00
sqlite>  SELECT time('12:00', 'utc');
19:00:00

Laman web PHP Cina