嗨,我真的是MySQL的新手,我正在尝试进行自动时间戳记。但是,我发现CURRENT_TIMESTAMP
给了我错误的时区(8小时时差)。我不想更改计算机的时区,所以我抬起头来,发现了DATE_ADD()
方法。
我试图在SQL脚本中使用DATE_ADD(CURRENT_TIMESTAMP, INVTERVAL +8 HOUR)
,但是在执行该脚本时会返回语法错误。
这是我的sql脚本。
DROP DATABASE IF EXISTS testWeatherDB;
CREATE DATABASE testWeatherDB;
use testWeatherDB;
DROP TABLE IF EXISTS data;
CREATE TABLE IF NOT EXISTS data (
id INT NOT NULL AUTO_INCREMENT,
timestamp TIMESTAMP DEFAULT DATE_ADD(CURRENT_TIMESTAMP, INTERVAL +8 HOUR) ON UPDATE DATE_ADD(CURRENT_TIMESTAMP, INTERVAL +8 HOUR),
humidity DECIMAL(6,3) NOT NULL DEFAULT 0.00,
temperature DECIMAL(6,3) NOT NULL DEFAULT 0.00,
pressure DECIMAL(7,3) NOT NULL DEFAULT 0.00,
airqualityindex DECIMAL(6,3) NOT NULL DEFAULT 0.00,
uvindex DECIMAL(6,3) NOT NULL DEFAULT 0.00,
particledensity DECIMAL(6,3) NOT NULL DEFAULT 0.00,
image VARCHAR(20) NOT NULL DEFAULT 'IMG NOT FOUND',
PRIMARY KEY (id)
);
我的脚本中是否存在语法错误,或者我以错误的方式使用了DATE_ADD()
?
答案 0 :(得分:0)
MySQL始终将日期和时间存储在UTC中,因此可以轻松地将其转换为不同的时区。 NOW()或CURRENT_TIMESTAMP()返回日期/时间以及您配置的当前时区。