当我用月份创建 table 时,他只给了 0000-00-00

When i Create table with Month he only given 0000-00-00

我创造 table 小时

CREATE TABLE hour (
    Name1 varchar(25) not null,
    Datee Datetime not null DEFAULT (CURRENT_TIMESTAMP()),
    Monthh date not null DEFAULT (MONTH(CURRENT_DATE()))
);

Mysql 只给我 0000-00-00 而不是我在 php 中使用按钮的名称。这有什么问题,正确吗?在我看来,我的 php 管理员没有 MONTH 功能

CREATE TABLE hour ( Name1 varchar(25) not null,
                    Datee DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
                    Monthh TINYINT NOT NULL DEFAULT (MONTH(CURRENT_TIMESTAMP))
                  );

fiddle

PS。 HOURReserved word - 我建议重命名 table。

在同一个 table 的不同列中存储完整的时间戳和它的月份部分绝对是多余的。您可以仅记录日期时间并在 select 查询中获取月份:

CREATE TABLE Godzina (
  Nazwa varchar(25) not null,
  Randka Datetime not null DEFAULT CURRENT_TIMESTAMP()
);

INSERT INTO Godzina (Nazwa) VALUES ('TestName');

SELECT 
    Nazwa,
    Randka,
    MONTH(Randka) AS Miesiac
FROM Godzina;

SQLize.online

上测试