SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Cách hoạt động của hàm DateTime () trong SQLite

SQLite datetime() hàm cho phép bạn trả về giá trị ngày và giờ dựa trên chuỗi thời gian và bất kỳ công cụ sửa đổi nào.

Nó trả về ngày ở định dạng sau:YYYY-MM-DD HH:MM:SS

Để sử dụng hàm này, bạn cần cung cấp chuỗi thời gian, cộng với bất kỳ công cụ sửa đổi (tùy chọn) nào. Công cụ sửa đổi cho phép bạn thay đổi ngày, chẳng hạn như thêm một số ngày, đặt nó thành giờ địa phương, v.v.

Cú pháp

Cú pháp như sau:

datetime(timestring, modifier, modifier, ...)

timestring đối số phải là một chuỗi thời gian hợp lệ.

Công cụ sửa đổi modifier đối số là tùy chọn. Bạn có thể cung cấp một hoặc nhiều bổ ngữ. Nếu bạn cung cấp một công cụ sửa đổi, nó phải là một công cụ sửa đổi hợp lệ.

Ví dụ

Đây là một ví dụ để chứng minh datetime() hàm đang được sử dụng với một đối số.

SELECT datetime('now');

Kết quả:

2020-04-28 23:56:06

now chuỗi thời gian được chuyển đổi thành ngày và giờ hiện tại.

Thêm công cụ sửa đổi

Chúng tôi có thể sửa đổi kết quả trước đó bằng cách sử dụng một công cụ sửa đổi. Đây là một ví dụ.

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

Kết quả:

2020-04-29 02:56:52

Trong trường hợp này, tôi đã thêm ba giờ vào thời gian. Với thời gian ban đầu, điều này cũng dẫn đến ngày được chuyển sang ngày hôm sau.

Nhiều công cụ sửa đổi

Như đã đề cập, bạn có thể thêm một hoặc nhiều bổ ngữ. Dưới đây là ví dụ về việc thêm một công cụ sửa đổi khác vào ví dụ trước.

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

Kết quả:

2020-04-29 12:58:13

Trong trường hợp của tôi, localtime sửa đổi dẫn đến thời gian được di chuyển về phía trước.

Lý do nó làm được điều này là vì localtime công cụ sửa đổi giả định chuỗi thời gian được cung cấp là Giờ Phối hợp Toàn cầu (UTC). Sau đó, nó điều chỉnh chuỗi thời gian để nó hiển thị giờ địa phương.

Do đó, bạn có thể nhận được một kết quả khác, tùy thuộc vào giờ địa phương của bạn.

Đây là một lần nữa so sánh giờ địa phương ban đầu với kết quả đã sửa đổi:

SELECT 
  datetime('now', 'localtime') AS "Local",
  datetime('now', '+3 hours', 'localtime') AS "Modified";

Kết quả:

Local                Modified           
-------------------  -------------------
2020-04-29 10:02:09  2020-04-29 13:02:09

Ngày là Chuỗi thời gian

Các ví dụ trên sử dụng now dưới dạng chuỗi thời gian, nhưng bạn có thể cung cấp bất kỳ chuỗi thời gian hợp lệ nào.

Nếu bạn chỉ cung cấp phần ngày, phần thời gian sẽ được đặt thành tất cả các số không.

SELECT datetime('2010-08-15');

Kết quả:

2010-08-15 00:00:00

Nếu chỉ cung cấp phần thời gian, thì ngày được đặt thành 2000-01-01.

SELECT datetime('23:58:57');

Kết quả:

2000-01-01 23:58:57

Dưới đây là một ví dụ sử dụng Ngày Julian làm chuỗi thời gian.

SELECT datetime('2451545.49927083');

Kết quả:

2000-01-01 23:58:57

datetime () so với strftime ()

datetime() hàm trả về chính xác cùng một kết quả mà strftime('%Y-%m-%d %H:%M:%S', ...) lợi nhuận. datetime() chỉ là một cách thuận tiện hơn để thực hiện.

SELECT 
  datetime('now'),
  strftime('%Y-%m-%d %H:%M:%S', 'now');

Kết quả:

datetime('now')      strftime('%Y-%m-%d %H:%M:%S', 'now')
-------------------  ------------------------------------
2020-04-29 00:16:12  2020-04-29 00:16:12                 

Phạm vi ngày

Như với tất cả các hàm ngày và giờ của SQLite, datetime() chỉ hoạt động cho các ngày từ 0000-01-01 00:00:00 đến 9999-12-31 23:59:59 (số ngày julian từ 1721059,5 đến 5373484,5).

Đối với những ngày nằm ngoài phạm vi đó, kết quả không được xác định.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng khóa chính với WithoutRowID

  2. Cách tìm nạp hai phản hồi Json Đối tượng và Mảng Json

  3. Quản lý dữ liệu với Python, SQLite và SQLAlchemy

  4. Lỗi SQLite của Android:số biến phải từ? 1 đến? 999

  5. Trình kích hoạt SQLite