【问题标题】:How to set date data type default values EMPTY?如何设置日期数据类型默认值 EMPTY?
【发布时间】:2020-09-06 08:29:34
【问题描述】:

CREATE TABLE pegawai (idpegawai char (6) not null default ' ',
namadepan varchar (20) default null,
namabelakang varchar (25) not null default ' ',
email varchar (25) not null default ' ',
telepon varchar (20) default null,
tglkontrak date not null default ' ');

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 6 行的 ''not null')' 附近使用正确的语法

但我想要这样的结果,你能帮帮我吗? enter image description here

【问题讨论】:

标签: mysql sql mariadb


【解决方案1】:

在您的查询中,您提到了空格作为date 字段tglkontrak 的默认值。 Date 字段可以接受NULL 或有效的date

如果你可以把它写成null 那么

CREATE TABLE pegawai (idpegawai char (6) not null default ' ',
namadepan varchar (20) default null,
namabelakang varchar (25) not null default ' ',
email varchar (25) not null default ' ',
telepon varchar (20) default null,
tglkontrak date);

否则

CREATE TABLE pegawai (idpegawai char (6) not null default ' ',
namadepan varchar (20) default null,
namabelakang varchar (25) not null default ' ',
email varchar (25) not null default ' ',
telepon varchar (20) default null,
tglkontrak date not null);

【讨论】:

  • tglkontrak date not null default '0000-00-00' 这可能与 NO_ZERO_DATE 和/或 NO_ZERO_IN_DATE 服务器 SQL 模式设置相矛盾。 fiddle.
  • 没错。如果启用了严格的 SQL 模式,它会这样做
  • 但是我想要这样的结果,你能帮帮我吗? i.stack.imgur.com/w6zNw.png
  • 您的版本不正确 - 严格模式不会影响问题。见fiddle
  • 而不是tglkontrak date 使用tglkontrak date not null
猜你喜欢
  • 2022-12-05
  • 2020-03-25
  • 1970-01-01
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多