Mysql sử dụng lúc mấy giờ?

Hàm CURRENT_TIMESTAMP trong cơ sở dữ liệu MySQL trả về ngày và giờ hiện tại (i. e. thời gian để máy chạy phiên bản MySQL đó). Nó được đưa ra dưới dạng một giá trị trong 'YYYY-MM-DD hh. mm. định dạng ss'

Chức năng này không yêu cầu dấu ngoặc. Tuy nhiên, bạn có thể sử dụng dấu ngoặc để chỉ định thời gian chính xác cao hơn. Chỉ cần đặt một số nguyên từ 1 đến 6 trong dấu ngoặc đơn – điều này xác định số giây phân số cần đưa vào sau dấu thập phân. Số 1 chỉ biểu thị một vị trí sau dấu thập phân, số 3 biểu thị ba vị trí, v.v. Đây là một ví dụ

SELECT CURRENT_TIMESTAMP(6) ;

Điều này trả về ngày và giờ với sáu giây phân số, như vậy

2019-08-27 12:08:56.146153

Kết quả này chứa giây phân số gồm 6 chữ số vì chúng tôi đặt 6 làm đối số tùy chọn trong hàm CURRENT_TIMESTAMP

Hàm NOW() tương tự như hàm CURRENT_TIMESTAMP và trả về kết quả tương tự. Sự khác biệt là CURRENT_TIMESTAMP là hàm chuẩn SQL, trong khi NOW() dành riêng cho MySQL. Hãy xem một ví dụ với NOW()

SELECT NOW() ;

Đây là kết quả của truy vấn

2019-08-27 12:18:55

Không giống như CURRENT_TIMESTAMP, NOW() yêu cầu dấu ngoặc. Bạn có thể để trống các dấu ngoặc, trả về ngày và giờ mà không có giây phân số. Nếu bạn muốn nhận được kết quả chính xác hơn, hãy sử dụng một số nguyên từ 1 đến 6 làm đối số tùy chọn (như với CURRENT_TIMESTAMP). Nó sẽ trả về số giây phân số mà bạn chỉ định

Theo mặc định, múi giờ cho phiên bản Cơ sở dữ liệu MySQL là Giờ phối hợp quốc tế (UTC). Thay vào đó, bạn có thể đặt múi giờ cho phiên bản CSDL thành múi giờ địa phương cho ứng dụng của mình

Để đặt múi giờ địa phương cho phiên bản CSDL, hãy đặt tham số time_zone trong nhóm tham số cho phiên bản DB của bạn thành một trong các giá trị được hỗ trợ liệt kê sau trong phần này. Khi bạn đặt tham số time_zone cho một nhóm tham số, tất cả các phiên bản CSDL và bản sao có quyền đọc đang sử dụng nhóm tham số đó sẽ thay đổi để sử dụng múi giờ địa phương mới. Để biết thông tin về cài đặt tham số trong một nhóm tham số, hãy xem Làm việc với các nhóm tham số

Sau khi bạn đặt múi giờ địa phương, tất cả các kết nối mới tới cơ sở dữ liệu đều phản ánh sự thay đổi. Nếu bạn có bất kỳ kết nối mở nào tới cơ sở dữ liệu của mình khi bạn thay đổi múi giờ địa phương, bạn sẽ không thấy cập nhật múi giờ địa phương cho đến khi bạn đóng kết nối và mở một kết nối mới

Bạn có thể đặt múi giờ địa phương khác cho phiên bản CSDL và một hoặc nhiều bản sao chỉ có quyền đọc của phiên bản đó. Để thực hiện việc này, hãy sử dụng một nhóm tham số khác cho phiên bản DB và bản sao hoặc các bản sao, đồng thời đặt tham số time_zone trong mỗi nhóm tham số thành một múi giờ địa phương khác

Nếu bạn đang sao chép trên các Khu vực AWS, thì phiên bản CSDL nguồn và bản sao chỉ có quyền đọc sẽ sử dụng các nhóm tham số khác nhau (các nhóm tham số là duy nhất cho một Khu vực AWS). Để sử dụng cùng một múi giờ địa phương cho mỗi phiên bản, bạn phải đặt tham số time_zone trong các nhóm tham số của bản sao có quyền đọc và phiên bản

Khi bạn khôi phục phiên bản CSDL từ ảnh chụp nhanh CSDL, múi giờ địa phương được đặt thành UTC. Bạn có thể cập nhật múi giờ thành múi giờ địa phương sau khi quá trình khôi phục hoàn tất. Nếu bạn khôi phục phiên bản CSDL về một thời điểm, thì múi giờ địa phương cho phiên bản CSDL được khôi phục là cài đặt múi giờ từ nhóm tham số của phiên bản CSDL được khôi phục

Múi giờ địa phương của bạn có thể khác với múi giờ MySQL của máy chủ của bạn. Điều đó làm cho việc diễn giải dữ liệu trong cơ sở dữ liệu của bạn trở nên rất khó khăn. Lý tưởng nhất là múi giờ của MySQL phải giống với múi giờ của bạn để xử lý dữ liệu hiệu quả hơn

Hướng dẫn này sẽ giúp bạn thay đổi múi giờ trên máy chủ MySQL của mình, giúp việc đọc nhật ký máy chủ và các dữ liệu khác trở nên dễ dàng và trực quan hơn

tutorial on changing and how to set time zone in MySQL

điều kiện tiên quyết

  • Tài khoản người dùng có quyền root hoặc sudo
  • Một máy chủ Linux chạy MySQL
  • Tài khoản người dùng root cho cơ sở dữ liệu MySQL
  • Một cửa sổ terminal/dòng lệnh (Ctrl-Alt-T, Search > Terminal)
  • Kết nối SSH đến máy chủ của bạn (nếu làm việc từ xa)

Tìm Múi giờ MySQL hiện tại

Mở một cửa sổ đầu cuối. Nếu bạn đang làm việc từ xa, hãy kết nối với máy chủ của bạn qua SSH, sử dụng quyền root

Nhập thông tin sau để kiểm tra múi giờ toàn cầu hiện tại trong MySQL

sudo mysql –e “SELECT @@global.time_zone;”

command that displays the MySQL time zone in use

Theo mặc định, hệ thống sẽ hiển thị giá trị SYSTEM cho múi giờ của bạn. Điều này chỉ ra rằng múi giờ trong MySQL được đồng bộ hóa với múi giờ của máy chủ

Để hiển thị dấu thời gian từ máy chủ, hãy nhập thông tin sau

date

Hệ thống sẽ hiển thị ngày, giờ và múi giờ của máy chủ. Ví dụ,

Tue Jan 21 11:33:35 MST 2020

Múi giờ được biểu thị bằng mã chữ cái. Trong trường hợp này, nó được đặt thành Giờ chuẩn miền núi (MST)

Hiển thị dấu thời gian từ máy chủ MySQL

sudo mysql –e “SELECT NOW();”

Hệ thống sẽ hiển thị thời gian hiện tại trong MySQL

Terminal output that indicates current time and date in MySQL

Thay đổi múi giờ trong MySQL

lựa chọn 1. Sử dụng lệnh SET GLOBAL time_zone

Sử dụng tùy chọn này để đặt giá trị GMT mới cho múi giờ MySQL toàn cầu của máy chủ

________số 8_______

Thay vì

date
1, hãy nhập giá trị GMT mà bạn mong muốn. Nếu thực hiện đúng, không có đầu ra phản hồi

Kiểm tra giá trị mới của cài đặt múi giờ MySQL trên máy chủ của bạn

sudo mysql -e "SELECT @@global.time_zone;"

using the global timezone command in MySQL

Sau khi bạn thay đổi múi giờ, ngày giờ và dấu thời gian được lưu trữ trước đó sẽ không được cập nhật

Ghi chú. Lệnh

date
2 sửa đổi múi giờ toàn cầu trong MySQL trong suốt thời gian hoạt động của dịch vụ hiện tại. Khi dịch vụ MySQL được khởi động lại, cài đặt sẽ trở về mặc định (HỆ THỐNG)

Vì lý do đó, một tùy chọn tốt hơn nhiều là đặt múi giờ bằng cách chỉnh sửa tệp cấu hình MySQL

Lựa chọn 2. Chỉnh sửa tệp cấu hình MySQL

Có thể thay đổi cài đặt MySQL bằng cách chỉnh sửa tệp chính của tôi. tập tin cấu hình cnf. Mở tệp để chỉnh sửa

sudo nano /etc/mysql/my.cnf

Cuộn xuống phần

date
3 và tìm dòng
date
4. Thay đổi giá trị
date
5 thành giá trị GMT cho múi giờ bạn muốn. Lưu file và thoát

Trong ví dụ bên dưới, chúng tôi đặt múi giờ của Máy chủ MySQL thành

date
6 (GMT +8)

example of how to set time zone in MySQL configuration file

Ghi chú. Nếu bạn đang làm việc với một bản cài đặt MySQL mới, /etc/mysql/my. tệp cnf có thể không có bất kỳ cài đặt nào trong đó. Nếu đúng như vậy, hãy cuộn xuống cuối tài liệu và thêm phần sau

[mysqld]
default-time-zone = "+00:00"

Thay vì

date
5, hãy nhập múi giờ bạn muốn định cấu hình

Khởi động lại máy chủ MySQL để áp dụng các thay đổi

sudo service mysql restart

Kiểm tra lại múi giờ và thời gian hiện tại

sudo mysql –e “SELECT @@global.time_zone;”
sudo mysql –e “SELECT NOW();”

Phần kết luận

Trong bài viết này, bạn đã học được hai phương pháp khác nhau để thay đổi múi giờ mặc định trong MySQL

Nếu bạn cũng cần đặt múi giờ trên máy chủ Ubuntu của mình, hãy tham khảo Cách đặt hoặc thay đổi múi giờ trên Ubuntu

MySQL có phải là giờ UTC không?

Trong nội bộ, cột dấu thời gian của MySQL được lưu trữ dưới dạng UTC . Tuy nhiên, khi bạn chọn một ngày, MySQL sẽ tự động chuyển đổi cột dấu thời gian thành múi giờ của phiên hiện tại. MySQL chuyển đổi các giá trị TIMESTAMP từ múi giờ hiện tại sang UTC để lưu trữ.

Cơ sở dữ liệu sử dụng múi giờ nào?

MySQL sử dụng định dạng ngày nào?

Loại NGÀY được sử dụng cho các giá trị có phần ngày nhưng không có phần thời gian. Nó hiển thị các giá trị NGÀY ở định dạng 'YYYY-MM-DD'. Chúng tôi có thể lưu trữ bất kỳ giá trị ngày nào trong phạm vi đã cho '1000-01-01' đến '9999-12-31'

TIMESTAMP hiện tại trong MySQL là gì?

Hàm MYSQL CURRENT_TIMESTAMP() là từ đồng nghĩa với NOW(). Nó được sử dụng để lấy giá trị ngày và giờ hiện tại. Giá trị kết quả là một chuỗi hoặc một giá trị số dựa trên ngữ cảnh và giá trị được trả về sẽ ở dạng 'YYYY-MM-DD hh. mm. định dạng ss' hoặc YYYYMMDDhhmmss