Cách chèn ngày hiện tại vào mysql bằng nút js

NodeJ. Một nền tảng nguồn mở để thực thi mã javascript ở phía máy chủ. Ngoài ra, thời gian chạy javascript được xây dựng trên công cụ JavaScript V8 của Chrome. Nó có thể được tải về từ đây. Mysql  Hệ thống quản lý cơ sở dữ liệu quan hệ nguồn mở (RDBMS) sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL). Đây là ngôn ngữ phổ biến nhất để thêm, truy cập và quản lý nội dung trong cơ sở dữ liệu. Ở đây chúng tôi sẽ sử dụng Mysql làm cơ sở dữ liệu cho ứng dụng nút của chúng tôi. Nó có thể được tải về từ đây

Trong bài viết này, chúng ta sẽ tìm hiểu cách chèn hàng vào bảng SQL bằng cách sử dụng Node. js. Với sự trợ giúp của SQL INSERT Query

Khởi tạo nút. dự án js

npm init

Cách chèn ngày hiện tại vào mysql bằng nút js

Cài đặt mô-đun.  

npm install express
npm install mysql

Cách chèn ngày hiện tại vào mysql bằng nút js

Cấu trúc tệp

Cách chèn ngày hiện tại vào mysql bằng nút js

Cấu trúc cơ sở dữ liệu MySQL

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).

kết nối sql. js




npm install express
npm install mysql
15

npm install express
npm install mysql
16____117
npm install express
npm install mysql
18

npm install express
npm install mysql
19

npm install express
npm install mysql
0

npm install express
npm install mysql
1

npm install express
npm install mysql
2
npm install express
npm install mysql
3
npm install express
npm install mysql
4
npm install express
npm install mysql
5

npm install express
npm install mysql
2
npm install express
npm install mysql
7
npm install express
npm install mysql
8
npm install express
npm install mysql
5

_______12____21____22____15

npm install express
npm install mysql
2____25
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
6

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
7

npm install express
npm install mysql
19

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
9

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
20

npm install express
npm install mysql
2____222
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
23

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
24
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
25____226
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
27

npm install express
npm install mysql
2____229____320
npm install express
npm install mysql
21

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
24
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
25______324
npm install express
npm install mysql
18

npm install express
npm install mysql
2____229

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
7

npm install express
npm install mysql
19

npm install express
npm install mysql
150

Bất cứ khi nào chúng tôi muốn thực hiện truy vấn, chúng tôi sẽ nhập mô-đun db_con vào tệp đó. Điều này sẽ tăng tính mô đun của mã của chúng tôi

Thời gian đóng một vai trò thiết yếu trong cuộc sống của chúng ta. Do đó, với tư cách là nhà phát triển, chúng tôi phải làm việc với ngày và giờ khá thường xuyên. Phần mềm máy tính được sử dụng bởi mọi người từ mọi nơi trên thế giới và thời gian ở một khu vực có thể khác với thời gian ở khu vực khác. Và, nói chung, trong phần mềm chúng tôi xây dựng, chúng tôi nắm bắt và xử lý ngày và giờ của các sự kiện và bản ghi dữ liệu khác nhau. Do đó, điều quan trọng là phải hiểu các sắc thái khác nhau khi làm việc với ngày và giờ

Ngày và thời gian có thể được biểu diễn ở nhiều định dạng khác nhau. Ở Ukraine, ngày thường được viết theo định dạng "DD-MM-YYYY" (ngày đầu tiên), trong khi ở Hoa Kỳ, định dạng phổ biến là "MM-DD-YYYY" (tháng đầu tiên)

Tùy thuộc vào khu vực địa lý hoặc một đơn vị chính trị (đ. g. , một quốc gia), múi giờ có thể khác nhau. Ví dụ, vào mùa hè, trong khi ở Kiev, thời gian là 21. 00, ở New York thời gian là 14. 00 (trừ bảy giờ). Ngoài ra, điều quan trọng cần đề cập là lựa chọn/định nghĩa múi giờ ở một quốc gia/khu vực cụ thể có thể bị ảnh hưởng bởi một quyết định chính trị. Một quốc gia có thể chọn độ lệch UTC khác với vị trí địa lý thực tế của quốc gia đó Độ lệch UTC

Tất cả các múi giờ được xác định là phần bù cho Giờ phối hợp quốc tế (UTC), nằm trong khoảng từ UTC-12. 00 đến UTC+14. 00. Điểm tham chiếu địa lý cho UTC là kinh tuyến gốc (kinh độ = 0°), chạy qua Đài thiên văn Hoàng gia ở Greenwich, London, Vương quốc Anh

Ngoài ra, ở các khu vực khác nhau trên thế giới, mọi người thực hành Giờ tiết kiệm ánh sáng ban ngày (DST) hay nói cách khác - giờ mùa hè. Đây là cách quay đồng hồ về phía trước một giờ so với giờ tiêu chuẩn trong những tháng ấm hơn để có nhiều ánh sáng ban ngày hơn trong những giờ chúng ta thường thức. Ví dụ: ở Ukraine, chúng tôi quay đồng hồ về phía trước một giờ vào Chủ nhật cuối cùng của tháng 3 lúc 03. 00 và chúng tôi quay trở lại thời gian tiêu chuẩn (quay ngược đồng hồ một giờ) vào Chủ nhật cuối cùng của tháng 10 lúc 04. 00. Ngày và giờ DST bắt đầu và kết thúc tùy thuộc vào một quốc gia hoặc một đơn vị chính trị (e. g. , Liên minh châu Âu. )

Ngoài ra, độ lệch múi giờ của khu vực chính trị và/hoặc ngày và giờ khi DST bắt đầu và kết thúc có thể đã bị thay đổi tại một số thời điểm trong lịch sử. Do đó, có một số cơ sở dữ liệu theo dõi thông tin về sự thay đổi múi giờ. Phổ biến nhất là IANA - Cơ sở dữ liệu múi giờ, còn được gọi là tz hoặc zoneinfo. Hệ điều hành và phần mềm máy tính khác sử dụng các cơ sở dữ liệu này để xử lý và chuyển đổi múi giờ

Một định dạng phổ biến để biểu thị các giá trị ngày và giờ trong lập trình máy tính là dấu thời gian Unix, là một số giây giữa kỷ nguyên Unix (1 tháng 1 năm 1970 00. 00. 00 UTC) và một ngày khác (e. g. , 1620758838). Các số nguyên dương biểu thị các ngày sau kỷ nguyên Unix, trong khi các số nguyên âm biểu thị các ngày trước kỷ nguyên Unix

Dấu thời gian Unix là một trong những định dạng phổ biến để lưu trữ ngày và giờ trong hệ điều hành và cơ sở dữ liệu

Tìm hiểu thêm về dấu thời gian Unix trên Wikipedia. thời gian Unix

Về cơ bản, ngày JavaScript được chỉ định là số mili giây kể từ ngày 1 tháng 1 năm 1970 00. 00. 00 UTC. Con số này trông tương tự như dấu thời gian Unix. Sự khác biệt là dấu thời gian Unix là số giây kể từ kỷ nguyên Unix trong khi ở JavaScript, đó là số mili giây

Trong JavaScript, chúng tôi sử dụng đối tượng Ngày để làm việc với ngày và giờ

npm install express
npm install mysql
0

Đối tượng Date giữ ngày và giờ hiện tại theo UTC trong nội bộ. Tuy nhiên, theo mặc định, khi chúng ta xuất ngày và giờ, đối tượng Date sẽ chuyển đổi kết quả đầu ra thành múi giờ địa phương, múi giờ của môi trường nơi mã JavaScript đang chạy (e. g. , một trình duyệt, Nút. js, v.v. )

Khi được khởi tạo mà không có tham số, đối tượng ngày sẽ giữ ngày và giờ hiện tại (

npm install express
npm install mysql
13 giữ ngày hiện tại)

Chúng ta có thể đặt ngày và giờ trong hàm tạo của Ngày hoặc sau khi khởi tạo

npm install express
npm install mysql
2

Khi chúng tôi khởi tạo lớp Ngày, ngày đã chỉ định sẽ được chuyển đổi thành và theo dõi trong nội bộ UTC. Tuy nhiên, khi chúng ta truy cập ngày bằng các phương thức cơ bản (e. g. ,

npm install express
npm install mysql
14,
npm install express
npm install mysql
15,
npm install express
npm install mysql
16, v.v.) ngày được trả về theo múi giờ địa phương

npm install express
npm install mysql
1

Ở đây, chúng tôi khởi tạo lớp Ngày chỉ định ngày theo UTC, nhưng khi chúng tôi in đối tượng ngày đã khởi tạo, chúng tôi nhận được ngày theo múi giờ địa phương, đối với tôi là UTC+03. 00 (Giờ mùa hè Đông Âu). Vì vậy, ngày được lưu trữ nội bộ theo UTC, nhưng khi chúng tôi truy cập ngày bằng các phương thức cơ bản, nó sẽ được chuyển đổi thành múi giờ địa phương

Các phương thức phổ biến nhất của đối tượng Date là

npm install express
npm install mysql
7

Tìm hiểu thêm về đối tượng Ngày trên MDN Web Docs. Ngày

npm install express
npm install mysql
8

Ở đây, chúng tôi tạo hai đối tượng ngày, 11 tháng 5 năm 2021 và 12 tháng 5 năm 2021. Sau đó, chúng tôi trừ ngày 11 tháng 5 năm 2021 (

npm install express
npm install mysql
17) từ ngày 12 tháng 5 năm 2021 (
npm install express
npm install mysql
18) và nhận được 24 giờ chênh lệch

Khi bạn làm việc với các đối tượng ngày, hãy tính đến các múi giờ mà các đối tượng ngày này được khởi tạo với. Kiểm tra một ví dụ khác

npm install express
npm install mysql
1

Ở đây, câu trả lời là -2, vì múi giờ của

npm install express
npm install mysql
17 là UTC trong khi múi giờ của
npm install express
npm install mysql
18 là UTC+3. Hãy xem những gì xảy ra chi tiết hơn

  1. Chúng tôi đặt
    npm install express
    npm install mysql
    17 thành 12 tháng 5 năm 2021 00. 00. 00 UTC sử dụng định dạng ISO 8601. Chúng tôi chỉ định múi giờ UTC bằng ký tự Z. Chúng tôi cũng có thể chỉ định múi giờ bằng cách sử dụng phần bù, như thế này. 2021-05-12T00. 00. 00. 000+00. 00 (+00. 00 là UTC)
  2. Chúng tôi đặt
    npm install express
    npm install mysql
    18 thành ngày 12 tháng 5 năm 2021 01. 00. 00 sử dụng định dạng ngày và giờ khác với độ lệch múi giờ UTC+3 (hoặc UTC+03. 00)
  3. Sau đó, chúng tôi trừ date1 từ date2 (______473). Khi chúng ta sử dụng một phép toán trên một đối tượng, JavaScript sẽ chuyển đổi đối tượng thành một số bằng cách sử dụng phương thức valueOf() của đối tượng nếu nó hiện diện. Trong trường hợp của đối tượng Date, phương thức
    npm install express
    npm install mysql
    74 trả về ngày và giờ dưới dạng số mili giây kể từ Kỷ nguyên Unix, là biểu diễn ngày và giờ dựa trên UTC. Vì vậy,
    npm install express
    npm install mysql
    17 đã được đặt ở UTC, trong khi
    npm install express
    npm install mysql
    18 đã được chuyển đổi thành UTC từ UTC+3. Vì vậy, trên thực tế, chúng tôi trừ ngày 12 tháng 5 năm 2021 01. 00. 00 UTC (
    npm install express
    npm install mysql
    17) từ ngày 11 tháng 5 năm 2021 22. 00. 00 UTC (
    npm install express
    npm install mysql
    18) và đó là cách chúng tôi nhận được -2 cho kết quả

Một cách để định dạng ngày là sử dụng các hàm getter như getFullYear, getMonth, getDate, v.v. Ví dụ: để tạo chuỗi ngày và giờ theo giờ địa phương ở định dạng 'YYYY-MM-DD hh. mm. ss' chúng ta có thể làm như sau

npm install express
npm install mysql
2

Để lấy giá trị ngày và giờ theo UTC, chúng ta có thể sử dụng các hàm getter dựa trên UTC như getUTCFullYear, getUTCMonth, getUTCDate, v.v.

Hơn nữa, chúng ta có thể lấy chuỗi ngày và giờ từ đối tượng Date được định dạng theo một ngôn ngữ nhất định và các tùy chọn khác nhau bằng cách sử dụng phương thức

npm install express
npm install mysql
15 của Date

npm install express
npm install mysql
4

Xin lưu ý rằng nếu bạn không chỉ định múi giờ trong các tùy chọn,

npm install express
npm install mysql
15 sẽ xuất ngày theo múi giờ địa phương

npm install express
npm install mysql
6

Đầu tiên, chúng tôi khởi tạo đối tượng Ngày với múi giờ địa phương và lấy chuỗi ngày và giờ được bản địa hóa. Khi Ngày được bắt đầu, giá trị ngày và giờ được chuyển đổi nội bộ từ múi giờ đã chỉ định (hoặc múi giờ địa phương nếu múi giờ không được chỉ định) sang UTC

Sau đó, chúng tôi khởi tạo một đối tượng Ngày khác với múi giờ địa phương. Lần này, chúng tôi đặt tùy chọn

npm install express
npm install mysql
81 thành "Châu Âu/Amsterdam" (theo Cơ sở dữ liệu múi giờ IANA). Do đó, chúng tôi nhận được chuỗi ngày và giờ được bản địa hóa dựa trên múi giờ "Châu Âu/Amsterdam". Chi tiết hơn. múi giờ hiện tại của tôi là UTC+3, vì vậy đối tượng Ngày được khởi tạo với ngày và giờ 2021-05-16 00. 00. 00 UTC+3 được chuyển đổi thành UTC nội bộ và trở thành 2021-05-15 21. 00. 00. Sau đó, phương thức
npm install express
npm install mysql
15 chuyển đổi ngày này từ UTC thành "Europe/Amsterdam" và kết quả là 15/5/2021, 11. 00. 00 giờ chiều GMT+2. Độ lệch kết quả là +2, bởi vì đó là độ lệch Giờ tiết kiệm ánh sáng ban ngày của múi giờ "Châu Âu/Amsterdam"

Thông thường, phần mềm máy tính (e. g. , Nút. js, cơ sở dữ liệu, v.v.) theo mặc định sử dụng cấu hình ngày và giờ của hệ thống. Do đó, hãy đảm bảo rằng tất cả các máy chủ thuộc về ứng dụng của bạn đều sử dụng cùng một múi giờ. UTC thường được sử dụng

Trong Linux, bạn có thể kiểm tra múi giờ bằng một trong các lệnh sau

npm install express
npm install mysql
9

Để thay đổi múi giờ hệ thống, bạn có thể sử dụng các lệnh sau

npm install express
npm install mysql
20

Để kiểm tra múi giờ của Node. quy trình js

npm install express
npm install mysql
21

trong nút. js, bạn có thể đặt múi giờ bằng biến môi trường

npm install express
npm install mysql
83

npm install express
npm install mysql
22

Nếu biến

npm install express
npm install mysql
83 không được đặt, Nút. js sẽ cố gắng sử dụng múi giờ của hệ điều hành

Thông thường, các ứng dụng web có sẵn từ mọi nơi trên thế giới. Điều này có nghĩa là nếu chúng tôi lưu trữ ngày trong cơ sở dữ liệu, chúng tôi cần đảm bảo rằng chúng tôi lưu trữ tất cả các ngày trong một múi giờ (nhất quán) hoặc ít nhất là theo dõi múi giờ của ngày mà chúng tôi lưu trữ. Các cơ sở dữ liệu khác nhau có các chi tiết cụ thể về cách chúng xử lý các giá trị ngày và giờ. Vì vậy, trong phần này, tôi muốn giải thích ngắn gọn cách lưu trữ các giá trị ngày và giờ trong các cơ sở dữ liệu khác nhau và đề cập đến một số chi tiết cụ thể đó

Thông thường, phần mềm (đặc biệt là ứng dụng web) phục vụ người dùng từ khắp nơi trên thế giới. Giờ địa phương của mỗi người dùng phụ thuộc vào vị trí của họ. Ví dụ: đối với người dùng từ Kiev, giờ địa phương vào mùa hè là 17. 00 và đồng thời đối với người dùng ở Amsterdam, giờ địa phương là 16. 00

Về cơ bản, chúng ta nên chuyển đổi và lưu trữ ngày tháng trong một múi giờ thống nhất; . Vì vậy, trước khi lưu trữ một ngày, chúng ta nên chuyển đổi nó từ giờ địa phương sang UTC. Ví dụ: người dùng từ Amsterdam tạo lời nhắc trong ứng dụng lịch. Người dùng chọn ngày giờ nhắc nhở theo giờ địa phương (múi giờ "Châu Âu/Amsterdam" - UTC+01. 00 giờ chuẩn và UTC+02. 00 DST). Giả sử người dùng đặt ngày nhắc nhở là ngày 12 tháng 5 năm 2021 17. 00 sử dụng tiện ích lịch. Bây giờ, trước khi chúng tôi lưu trữ ngày này trong cơ sở dữ liệu, chúng tôi nên chuyển đổi nó thành UTC và ngày trở thành. 12 Tháng năm 2021 15. 00 theo giờ UTC, vì Giờ mùa hè ở Amsterdam (UTC+02. 00) bắt đầu hoạt động vào ngày 28 tháng 3 năm 2021 lúc 02. 00. 00. May mắn thay, chúng ta thường không phải xử lý logic chuyển đổi múi giờ, vì nó thường được tích hợp sẵn trong ngôn ngữ lập trình và phần mềm (e. g. , một cơ sở dữ liệu) chúng tôi sử dụng. Ví dụ: trong JavaScript, chúng ta có thể lấy ngày và giờ hiện tại theo UTC bằng cách sử dụng đối tượng Date

npm install express
npm install mysql
23

mysql

Trong MySQL, ngày thường được lưu trữ bằng cách sử dụng các loại cột

npm install express
npm install mysql
85 và
npm install express
npm install mysql
86

DẤU THỜI GIAN của MySQL

MySQL chuyển đổi các giá trị

npm install express
npm install mysql
86 từ múi giờ hiện tại (e. g. , múi giờ toàn cầu hoặc múi giờ phiên máy khách) sang UTC để lưu trữ và quay lại từ UTC về múi giờ hiện tại để truy xuất. MySQL không làm điều này với các loại cột khác, như
npm install express
npm install mysql
85. Vì vậy, các giá trị
npm install express
npm install mysql
86 được chuyển đổi thành UTC để lưu trữ, nhưng khi chúng được truy xuất, chúng được chuyển đổi thành múi giờ hiện tại (_______510). Vui lòng kiểm tra ví dụ này

npm install express
npm install mysql
24

Kể từ MySQL 8. 0. 19 chúng ta có thể thêm phần bù múi giờ khi chèn các giá trị

npm install express
npm install mysql
86 và
npm install express
npm install mysql
85 vào bảng

npm install express
npm install mysql
25

Hãy xem điều gì xảy ra trong ví dụ này

  1. Chúng tôi đặt múi giờ hiện tại thành UTC+2
  2. Chúng tôi chèn một giá trị ngày với độ lệch múi giờ UTC-1. 2021-05-12 21. 00. 00-01. 00. MySQL chuyển đổi giá trị ngày và giờ này từ UTC-1 thành UTC để lưu trữ. 2021-05-12 22. 00. 00
  3. Chúng tôi chọn các hàng từ bảng của mình và MySQL chuyển đổi các giá trị
    npm install express
    npm install mysql
    86 từ UTC sang múi giờ hiện tại (UTC+2) khi truy xuất. 2021-05-13 00. 00. 00
  4. Sau đó, chúng tôi đặt múi giờ thành UTC+3 và chọn lại các hàng và vì MySQL chuyển đổi các giá trị
    npm install express
    npm install mysql
    86 từ UTC sang múi giờ hiện tại khi truy xuất, nên lần này chúng tôi nhận được ngày mà chúng tôi đã chèn trước đó vào UTC+3. 2021-05-13 01. 00. 00

Loại

npm install express
npm install mysql
86 có phạm vi 1970-01-01 00. 00. 01 UTC đến 2038-01-19 03. 14. 07 UTC

MySQL DATETIME

MySQL

npm install express
npm install mysql
85 được lưu trữ và truy xuất nguyên trạng

npm install express
npm install mysql
26

MySQL không chuyển đổi giá trị

npm install express
npm install mysql
85 từ múi giờ hiện tại sang UTC và ngược lại

Tuy nhiên, một điều thú vị sẽ xảy ra khi chúng ta chèn một giá trị

npm install express
npm install mysql
85 có chênh lệch múi giờ

npm install express
npm install mysql
27

Trong ví dụ trên, chúng ta có thể thấy rằng khi chúng ta chèn một giá trị

npm install express
npm install mysql
85 với phần bù múi giờ, MySQL sẽ chuyển đổi giá trị ngày này thành múi giờ hiện tại để lưu trữ. 2021-05-12 21. 00. 00+00. 00 + độ lệch múi giờ hiện tại (+03. 00) = 2021-05-13 00. 00. 00

Loại

npm install express
npm install mysql
85 có phạm vi 1000-01-01 00. 00. 00 đến 9999-12-31 23. 59. 59

Để lưu trữ giá trị ngày và giờ, tôi sẽ chuyển đổi giá trị ngày và giờ cục bộ thành UTC trong mã ứng dụng và lưu trữ giá trị này trong cột DATETIME. Về cơ bản, tôi sẽ xử lý chuyển đổi múi giờ ở phía ứng dụng và lưu trữ tất cả các ngày trong UTC. Tôi sẽ sử dụng DATETIME thay vì TIMESTAMP, vì TIMESTAMP thực sự là một số nguyên 32 bit và không cho phép lưu trữ ngày vượt quá 2038-01-19 03. 14. 07 UTC, trong khi DATETIME cho phép chúng tôi lưu trữ ngày lên tới 9999-12-31 23. 59. 59. 999999

PostgreSQL

Trong PostgreSQL, chúng tôi thường lưu trữ các giá trị ngày và giờ bằng cách sử dụng các loại cột

npm install express
npm install mysql
21 (hoặc đơn giản là
npm install express
npm install mysql
22) hoặc
npm install express
npm install mysql
23 (hoặc đơn giản là
npm install express
npm install mysql
24). Cả hai loại đều có phạm vi từ 4713 trước Công nguyên đến 294276 sau Công nguyên

Dấu thời gian PostgreSQL không có múi giờ

Các giá trị

npm install express
npm install mysql
21 được lưu trữ và truy xuất nguyên trạng

npm install express
npm install mysql
28

Trong ví dụ này, chúng tôi tạo một cột

npm install express
npm install mysql
21 có tên là created_at. Và, chúng ta có thể thấy rõ rằng giá trị ngày và giờ được lưu trữ và truy xuất từ ​​cột này. Nếu chúng tôi chỉ định múi giờ, múi giờ sẽ bị bỏ qua

Dấu thời gian PostgreSQL với múi giờ

Các giá trị ________ 623 (________ 624) được chuyển đổi từ múi giờ đã chỉ định sang UTC. Nếu bạn không chỉ định múi giờ khi chèn giá trị

npm install express
npm install mysql
24, PostgreSQL sẽ cho rằng giá trị ngày này dựa trên múi giờ hiện tại (
npm install express
npm install mysql
40)

npm install express
npm install mysql
29

Điều xảy ra trong ví dụ này là như sau

  1. Chúng tôi tạo một bảng có một cột được gọi là created_at có loại
    npm install express
    npm install mysql
    23
  2. Chúng tôi đặt múi giờ hiện tại cho phiên thành UTC+3. Xin lưu ý rằng trong PostgreSQL, chúng tôi có thể chỉ định múi giờ hiện tại bằng cách sử dụng số nguyên bù hoặc tên múi giờ (e. g. , Mỹ/New_York). Để có danh sách tên múi giờ được hỗ trợ, hãy truy vấn bảng pg_timezone_names.
    npm install express
    npm install mysql
    42
  3. Chúng tôi đảm bảo rằng phần bù múi giờ đã được đặt chính xác
  4. Chúng tôi chèn một hàng có giá trị created_at là 2021-05-12 09. 00. 00 +01. 00 vào bảng mới. Bởi vì cột created_at có kiểu
    npm install express
    npm install mysql
    23, PostgreSQL chuyển đổi giá trị ngày từ múi giờ đã chỉ định (+01. 00 trong trường hợp của chúng tôi) sang UTC để lưu trữ. Vì vậy, giá trị thực sự được lưu trữ là "2021-05-12 08. 00. 00"
  5. Chúng tôi chọn hàng đã chèn từ bảng và giá trị ngày được chuyển đổi từ UTC sang múi giờ hiện tại là UTC+3
  6. Chúng tôi chèn một hàng khác vào bảng, nhưng lần này không chỉ định phần bù múi giờ. Nếu chúng tôi không bao gồm phần bù múi giờ, PostgreSQL sẽ giả định rằng giá trị ngày mà chúng tôi cung cấp dựa trên múi giờ hiện tại, trong trường hợp của chúng tôi là UTC+3. Vì vậy, trước khi lưu trữ giá trị ngày này, PostgreSQL sẽ chuyển đổi nó từ múi giờ hiện tại (UTC+3 trong trường hợp của chúng tôi) sang UTC và giá trị ngày sau sẽ được lưu trữ. 2021-05-12 06. 00. 00 UTC
  7. Cuối cùng, chúng tôi chọn lại tất cả các hàng từ bảng của mình và thấy rằng giá trị ngày mà chúng tôi vừa chèn được hiển thị theo múi giờ hiện tại. 2021-05-12 09. 00. 00+03

Để lưu trữ giá trị ngày và giờ trong PostgreSQL, tôi sẽ sử dụng loại

npm install express
npm install mysql
44. Về cơ bản, tôi sẽ chọn dấu thời gian thay vì dấu thời gian, vì những lý do được đề cập trong bài viết sau từ PostgreSQL Wiki. Đừng làm điều này - Lưu trữ ngày/giờ

DynamoDB

Bạn có thể sử dụng các kiểu dữ liệu chuỗi và số để lưu trữ ngày tháng và dấu thời gian. Chúng ta có thể sử dụng kiểu dữ liệu chuỗi để lưu trữ các giá trị ngày và giờ ở định dạng ISO 8601 (e. g. , 2021-05-12, 2021-05-12T21. 00. 59. 123Z). Và chúng ta có thể sử dụng kiểu dữ liệu số để lưu trữ các giá trị ngày và giờ dưới dạng dấu thời gian UNIX (thời gian Epoch) - một số giây kể từ ngày 1 tháng 1 năm 1970 00. 00. 00 UTC. Điều này sẽ cho phép chúng tôi sắp xếp và truy vấn các mục theo ngày và giờ

MongoDB

Trong MongoDB, bên trong, ngày tháng được lưu trữ dưới dạng số nguyên có chữ ký 64 bit đại diện cho một số mili giây kể từ kỷ nguyên Unix (1 tháng 1 năm 1970 00. 00. 00 UTC). Các giá trị âm biểu thị các ngày trước kỷ nguyên Unix

Để chèn ngày vào Mongo shell, chúng ta có thể sử dụng đối tượng Date

npm install express
npm install mysql
10

Bạn có thể chuyển một chuỗi ISO 8601 hoặc một số mili giây kể từ kỷ nguyên Unix vào hàm tạo Ngày

npm install express
npm install mysql
11

Nếu bạn chỉ định chênh lệch múi giờ, ngày sẽ được chuyển thành UTC

npm install express
npm install mysql
12

Sự kết luận

Cẩn thận khi làm việc với ngày và giờ. Luôn kiểm tra xem ngày bạn lưu trữ và làm việc có dựa trên múi giờ bạn mong đợi không. Đảm bảo rằng các môi trường bạn sử dụng để chạy các phần khác nhau của ứng dụng (e. g. , máy chủ web, cơ sở dữ liệu, v.v. ) có cấu hình múi giờ chính xác và nhất quán

Làm cách nào để chèn ngày hôm nay vào MySQL?

Để chỉ chèn giá trị ngày, hãy sử dụng curdate() trong MySQL . Cùng với đó, nếu bạn muốn lấy toàn bộ thời gian, thì bạn có thể sử dụng phương thức now(). Chèn cả ngày và giờ với sự trợ giúp của now().

Làm cách nào để viết ngày hiện tại trong truy vấn MySQL?

MySQL Hàm CURDATE() . Ghi chú. Ngày được trả về dưới dạng "YYYY-MM-DD" (chuỗi) hoặc dưới dạng YYYYMMDD (số). Ghi chú. Hàm này bằng hàm CURRENT_DATE().

Chúng ta có thể sử dụng nút không. js với MySQL?

Khi bạn đã thiết lập và chạy MySQL trên máy tính của mình, bạn có thể truy cập nó bằng cách sử dụng Nút. js . Để truy cập cơ sở dữ liệu MySQL bằng Node. js, bạn cần có trình điều khiển MySQL.

là nút. js là một khuôn khổ?

Vì NodeJs là mã nguồn mở và nó chẳng là gì ngoài một khung JavaScript , nên đối với các nhà phát triển đã quen với JavaScript, .