【问题标题】:SQL Default value current date and timeSQL 默认值当前日期和时间
【发布时间】:2020-04-03 02:41:06
【问题描述】:

所以我创建了这个表:

CREATE TABLE Hospital_MedicalRecord(
    recNo CHAR(5),
    patient CHAR(9),
    doctor CHAR(9),
    enteredOn DATE NOT NULL,
    diagnosis VARCHAR(50) NOT NULL,
    treatment VARCHAR(50),
    PRIMARY KEY (recNo, patient),
    FOREIGN KEY (patient) REFERENCES Hospital_Patient(NINumber),
    FOREIGN KEY (doctor) REFERENCES Hospital_Doctor(NINumber)
);

我正在尝试让我的表格让enteredOn 列记录输入医疗记录的日期和时间,我想将默认值设为当前日期和时间。我知道我应该使用 current_timestamp 但我不知道如何制作它,我尝试过的一切都会给我错误。

【问题讨论】:

    标签: mysql sql database date timestamp


    【解决方案1】:

    只是:

    enteredOn DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
    

    注意:为此,您的列必须声明为 DATETIMETIMESTAMP(而不是 DATE)。

    如果您确实想要DATE,那么您需要一个触发器:

    CREATE TRIGGER Trg_Hospital_MedicalRecord_EnteredOn 
    BEFORE INSERT ON Hospital_MedicalRecord
    FOR EACH ROW 
    SET NEW.enteredOn= CURRENT_DATE();
    

    【讨论】:

      【解决方案2】:

      按照这个例子。

      格式是

      “列名”“类型”“限定符,空或非空”“默认”“时间” 请注意,字段的数据类型必须与方法调用匹配。 (CURRENT_TIMESTAMP 是 mysql 方法)

      CREATE TABLE `asdf` (
          `Id` INT(11) NULL DEFAULT NULL,
          `RunDate` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
      )
      COLLATE='utf8mb4_0900_ai_ci'
      ENGINE=InnoDB
      ;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-15
        相关资源
        最近更新 更多