mysql语法错误请教

发布网友 发布时间:2022-04-25 14:32

我来回答

6个回答

热心网友 时间:2022-04-08 07:06

这里的第7行“datetime stamp(14) NOT NULL,”报错了,这个时间类型有问题。
在mysql中,日期和时间类型是这样的
  在处理日期和时间类型的值时,MySQL 带有 5 个不同的数据类型可供选择。它们可以被分成简单的日期、时间类型,和混合日期、时间类型。根据要求的精度,子类型在每个分类型中都可以使用,并且 MySQL 带有内置功能可以把多样化的输入格式变为一个标准格式。
类型 大小
(字节) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳
DATE、TIME 和 TEAR 类型
  MySQL 用 DATE 和 TEAR 类型存储简单的日期值,使用 TIME 类型存储时间值。这些类型可以描述为字符串或不带分隔符的整数序列。如果描述为字符串,DATE 类型的值应该使用连字号作为分隔符分开,而 TIME 类型的值应该使用冒号作为分隔符分开。
  需要注意的是,没有冒号分隔符的 TIME 类型值,将会被 MySQL 理解为持续的时间,而不是时间戳。
  MySQL 还对日期的年份中的两个数字的值,或是 SQL 语句中为 TEAR 类型输入的两个数字进行最大限度的通译。因为所有 TEAR 类型的值必须用 4 个数字存储。MySQL 试图将 2 个数字的年份转换为 4 个数字的值。把在 00-69 范围内的值转换到 2000-2069 范围内。把 70-99 范围内的值转换到 1970-1979 之内。如果 MySQL 自动转换后的值并不符合我们的需要,请输入 4 个数字表示的年份。
DATEYIME 和 TIMESTAMP 类型
   除了日期和时间数据类型,MySQL 还支持 DATEYIME 和 TIMESTAMP 这两种混合类型。它们可以把日期和时间作为单个的值进行存储。这两种类型通常用于自动存储包含当前日期和时间的时间戳,并可在需要执行大量数据库事务和需要建立一个调试和审查用途的审计跟踪的应用程序中发挥良好作用。
  如果我们对 TIMESTAMP 类型的字段没有明确赋值,或是被赋与了 null 值。MySQL 会自动使用系统当前的日期和时间来填充它。

热心网友 时间:2022-04-08 08:24

把 datetime stamp(14) NOT NULL 修改为:

datetime int(11) NOT NULL

保存时间戳的字段,一般使用 int(11)

例如:
`inputtime` int(10) UNSIGNED NOT NULL DEFAULT 0 ,
或者使用日期类型
例如:
`inputtime` date NULL DEFAULT NULL ,

热心网友 时间:2022-04-08 09:58

datetime stamp(14) NOT NULL,
写成
`datetime` stamp(14) NOT NULL,

或者改个名

热心网友 时间:2022-04-08 11:50

我的报的是Invalid default value for 'create_time'

热心网友 时间:2022-04-08 13:58

datetime stamp(14) NOT NULL,

问题估计是出在上面这一行。

datetime 好像是 mysql 的 一个 数据类型的关键字。
而且 数据类型, 好像应该是 timestamp 这样的数据类型。 好像没见过 stamp 这样的数据类型啊。

热心网友 时间:2022-04-08 16:22

datetime
换个字段名!关键字!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com