SQLite
 sql >> база данни >  >> RDS >> SQLite

Дата и час в SQLite

Резюме :в този урок ще ви покажем как да работите със стойностите за дата и час в SQLite и да използвате вградените функции за дата и час за обработка на стойности за дата и час.

SQLite не поддържа вграден клас за съхранение на дата и/или час. Вместо това той използва някои вградени функции за дата и час, за да използва други класове за съхранение, като TEXT , REAL , или INTEGER за съхраняване на стойностите за дата и час.

Използване на TEXT клас за съхранение за съхранение на дата и час на SQLite

Ако използвате TEXT клас за съхранение, за да съхранявате стойност за дата и час, трябва да използвате низовия формат ISO8601, както следва:

YYYY-MM-DD HH:MM:SS.SSSCode language: SQL (Structured Query Language) (sql)

Например, 2016-01-01 10:20:05.123

Първо създайте нова таблица с име datetime_text за демонстрация.

CREATE TABLE datetime_text(
   d1 text, 
   d2 text
);Code language: SQL (Structured Query Language) (sql)

Опитайте го

Таблицата съдържа две колони d1 и d2 с TEXT тип данни.

За да вмъкнете стойности за дата и час в datetime_text таблица, използвате DATETIME функция.

Например, за да получите текущата стойност за дата и час в UTC, вие предавате сегашния литерален низ на функцията, както следва:

SELECT datetime('now');Code language: SQL (Structured Query Language) (sql)

Опитайте го

За да получите местното време, предавате допълнителен аргумент localtime .

SELECT datetime('now','localtime');Code language: SQL (Structured Query Language) (sql)

Опитайте го

Второ, поставете стойностите за дата и час в datetime_text таблица, както следва:

INSERT INTO datetime_text (d1, d2)
VALUES(datetime('now'),datetime('now', 'localtime'));Code language: SQL (Structured Query Language) (sql)

Опитайте го

Трето, потърсете данните от datetime_text таблица.

SELECT
	d1,
	typeof(d1),
	d2,
	typeof(d2)
FROM
	datetime_text;Code language: SQL (Structured Query Language) (sql)

Опитайте го

Използване на REAL клас за съхранение за съхраняване на стойности за дата и час в SQLite

Можете да използвате REAL клас за съхранение за съхраняване на стойностите на датата и/или часа като числа на юлиански дни, което е броят на дните от обяд в Гринуич на 24 ноември 4714 г. пр.н.е. въз основа на пролептичния григориански календар.

Нека да разгледаме пример за използване на класа за съхранение REAL за съхраняване на стойности за дата и час.

Първо създайте нова таблица с име datetime_real .

CREATE TABLE datetime_real(
   d1 real
);Code language: SQL (Structured Query Language) (sql)

Опитайте го

Второ, поставете „текущата“ стойност за дата и час в datetime_real таблица.

INSERT INTO datetime_real (d1)
VALUES(julianday('now'));Code language: SQL (Structured Query Language) (sql)

Опитайте го

Използвахме julianday() функция за преобразуване на текущата дата и час в Юлиански ден.

Трето, заявете данни от datetime_real таблица.

SELECT d1 FROM datetime_real;Code language: SQL (Structured Query Language) (sql)

Опитайте го

Резултатът не е четим от човека.

За щастие можете да използвате вградения date() и time() функции за форматиране на стойност за дата и час, както следва:

SELECT
	date(d1),
	time(d1)
FROM
	datetime_real;Code language: SQL (Structured Query Language) (sql)

Опитайте го

Използване на INTEGER за съхраняване на стойности за дата и час в SQLite

Освен TEXT и REAL класове за съхранение, можете да използвате INTEGER клас за съхранение за съхраняване на стойности за дата и час.

Обикновено използваме INTEGER за съхраняване на UNIX време, което е броят на секундите от 1970-01-01 00:00:00 UTC . Вижте следния пример:

Първо, създайте таблица, която има една колона, чийто тип данни е INTEGER за да съхранявате стойностите на датата и часа.

CREATE TABLE datetime_int (d1 int);Code language: SQL (Structured Query Language) (sql)

Опитайте го

Второ, поставете текущата стойност за дата и час в datetime_int таблица.

INSERT INTO datetime_int (d1)
VALUES(strftime('%s','now'));Code language: SQL (Structured Query Language) (sql)

Опитайте го

Трето, заявете данни от datetime_int таблица.

SELECT d1 FROM datetime_int;Code language: SQL (Structured Query Language) (sql)

Опитайте го

Това е цяло число.

За да форматирате резултата, можете да използвате вградения datetime() функционира, както следва:

SELECT datetime(d1,'unixepoch')
FROM datetime_int;Code language: SQL (Structured Query Language) (sql)

Опитайте го

С помощта на SQLite можете свободно да избирате всякакви типове данни за съхраняване на стойности за дата и час и да използвате вградената функция за дати и часове за конвертиране между формати.

За подробна информация относно функциите за дати и часове на SQLite, вижте вградените функции за дати и часове.

В този урок научихте как да използвате TEXT , REAL и INTEGER класове за съхранение за съхраняване на стойности за дата и час. Освен това научихте как да използвате вградените функции за дата и час, за да конвертирате съхранените стойности за дата и час в четими формати.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте база данни в SQLite

  2. Не може да се вмъкне запис в базата данни на SQLite от услугата за съобщения на Firebase, когато приложението е във фоново или затворено състояние

  3. SQLite - JOIN изявления

  4. Изчислете броя на секундите от конкретна дата/час в SQLite

  5. Вътрешно присъединяване на SQLite