create table jj
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default NOW()
);
最后一句 NOW()附近报错!
要是mssqlserver
[time_insert] [datetime] default(getdate()), 就行了。
但mysql那?
10 个解决方案
#1
create table jj
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
#2
楼上的方法我试了,,好像不行,但MSSQLServer行
不过你可以在写数据库时写当前的时间呀,不过这样会稍稍增加网络的压力;
不过你可以在写数据库时写当前的时间呀,不过这样会稍稍增加网络的压力;
#3
还有,不能加引号
#4
谁说不行的啊??你再试试看,到底行不行??
#5
create table jj
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
可以通过,但不起作用,主要是mysql目录还不支持以函数值做为默认值.
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
可以通过,但不起作用,主要是mysql目录还不支持以函数值做为默认值.
#6
create table jj
输错了,重贴
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
可以通过,但不起作用,主要是mysql目前还不支持以函数值做为默认值,只能是在插入数据时再赋值了.
输错了,重贴
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
可以通过,但不起作用,主要是mysql目前还不支持以函数值做为默认值,只能是在插入数据时再赋值了.
#7
绝对行的,我都试过不知道多少次了,要么是你们的版本太老了!
#8
to phpteam:
are you a kidding , can u see mysql manual
mysql can not support the function
I quote mysql manual document in here:
Default values must be constants. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE.
are you a kidding , can u see mysql manual
mysql can not support the function
I quote mysql manual document in here:
Default values must be constants. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE.
#9
使用TIMESTAMP类型
For date and time types other than TIMESTAMP, the default is the appropriate zero value for the type. For the first TIMESTAMP column in a table, the default value is the current date and time.
For date and time types other than TIMESTAMP, the default is the appropriate zero value for the type. For the first TIMESTAMP column in a table, the default value is the current date and time.
#10
为什么大家都不喜欢用 TIMESTAMP列类型呢,
列类型 显示格式
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY
它会自动地用当前的日期和时间标记你的INSERT或UPDATE的操作。如果一张表中有多个TIMESTAMP列,只有第一个自动更新。
在下列情况下MySQL会自动更新第一个TIMESTAMP列为当前系统时间
1、当一个INSERT、UPDATE或LOAD DATA INFILE语句中没有明确地指定其值时。
(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。看附例)
2、你明确地设定TIMESTAMP列为NULL.
3、除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
例:
CREATE TABLE catv.call (
callintime timestamp(14) ,
calldh varchar(10) DEFAULT '',
callnm varchar(10) DEFAULT '',
calldq varchar(20) NOT NULL DEFAULT '' ,
callinnum varchar(14) DEFAULT '',
callinvoice varchar(28) DEFAULT '',
recallnum varchar(14) DEFAULT '',
pass enum('True','False') NOT NULL DEFAULT 'False' ,
KEY callinnum (callinnum),
KEY callintime (callintime)
)
UPDATE call SET callintime=callintime,pass="True"
上一条指令会将表中所有的记录 pass 字段设为 True 而其它的字段值均不会改变!
列类型 显示格式
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY
它会自动地用当前的日期和时间标记你的INSERT或UPDATE的操作。如果一张表中有多个TIMESTAMP列,只有第一个自动更新。
在下列情况下MySQL会自动更新第一个TIMESTAMP列为当前系统时间
1、当一个INSERT、UPDATE或LOAD DATA INFILE语句中没有明确地指定其值时。
(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。看附例)
2、你明确地设定TIMESTAMP列为NULL.
3、除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
例:
CREATE TABLE catv.call (
callintime timestamp(14) ,
calldh varchar(10) DEFAULT '',
callnm varchar(10) DEFAULT '',
calldq varchar(20) NOT NULL DEFAULT '' ,
callinnum varchar(14) DEFAULT '',
callinvoice varchar(28) DEFAULT '',
recallnum varchar(14) DEFAULT '',
pass enum('True','False') NOT NULL DEFAULT 'False' ,
KEY callinnum (callinnum),
KEY callintime (callintime)
)
UPDATE call SET callintime=callintime,pass="True"
上一条指令会将表中所有的记录 pass 字段设为 True 而其它的字段值均不会改变!
#1
create table jj
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
#2
楼上的方法我试了,,好像不行,但MSSQLServer行
不过你可以在写数据库时写当前的时间呀,不过这样会稍稍增加网络的压力;
不过你可以在写数据库时写当前的时间呀,不过这样会稍稍增加网络的压力;
#3
还有,不能加引号
#4
谁说不行的啊??你再试试看,到底行不行??
#5
create table jj
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
可以通过,但不起作用,主要是mysql目录还不支持以函数值做为默认值.
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
可以通过,但不起作用,主要是mysql目录还不支持以函数值做为默认值.
#6
create table jj
输错了,重贴
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
可以通过,但不起作用,主要是mysql目前还不支持以函数值做为默认值,只能是在插入数据时再赋值了.
输错了,重贴
(
id int not null primary key auto_increment,
name varchar(20) not null,
email varchar(20) ,
title varchar(50) not null,
content text,
time_insert datetime default 'NOW()'
);
可以通过,但不起作用,主要是mysql目前还不支持以函数值做为默认值,只能是在插入数据时再赋值了.
#7
绝对行的,我都试过不知道多少次了,要么是你们的版本太老了!
#8
to phpteam:
are you a kidding , can u see mysql manual
mysql can not support the function
I quote mysql manual document in here:
Default values must be constants. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE.
are you a kidding , can u see mysql manual
mysql can not support the function
I quote mysql manual document in here:
Default values must be constants. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE.
#9
使用TIMESTAMP类型
For date and time types other than TIMESTAMP, the default is the appropriate zero value for the type. For the first TIMESTAMP column in a table, the default value is the current date and time.
For date and time types other than TIMESTAMP, the default is the appropriate zero value for the type. For the first TIMESTAMP column in a table, the default value is the current date and time.
#10
为什么大家都不喜欢用 TIMESTAMP列类型呢,
列类型 显示格式
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY
它会自动地用当前的日期和时间标记你的INSERT或UPDATE的操作。如果一张表中有多个TIMESTAMP列,只有第一个自动更新。
在下列情况下MySQL会自动更新第一个TIMESTAMP列为当前系统时间
1、当一个INSERT、UPDATE或LOAD DATA INFILE语句中没有明确地指定其值时。
(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。看附例)
2、你明确地设定TIMESTAMP列为NULL.
3、除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
例:
CREATE TABLE catv.call (
callintime timestamp(14) ,
calldh varchar(10) DEFAULT '',
callnm varchar(10) DEFAULT '',
calldq varchar(20) NOT NULL DEFAULT '' ,
callinnum varchar(14) DEFAULT '',
callinvoice varchar(28) DEFAULT '',
recallnum varchar(14) DEFAULT '',
pass enum('True','False') NOT NULL DEFAULT 'False' ,
KEY callinnum (callinnum),
KEY callintime (callintime)
)
UPDATE call SET callintime=callintime,pass="True"
上一条指令会将表中所有的记录 pass 字段设为 True 而其它的字段值均不会改变!
列类型 显示格式
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY
它会自动地用当前的日期和时间标记你的INSERT或UPDATE的操作。如果一张表中有多个TIMESTAMP列,只有第一个自动更新。
在下列情况下MySQL会自动更新第一个TIMESTAMP列为当前系统时间
1、当一个INSERT、UPDATE或LOAD DATA INFILE语句中没有明确地指定其值时。
(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。看附例)
2、你明确地设定TIMESTAMP列为NULL.
3、除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
例:
CREATE TABLE catv.call (
callintime timestamp(14) ,
calldh varchar(10) DEFAULT '',
callnm varchar(10) DEFAULT '',
calldq varchar(20) NOT NULL DEFAULT '' ,
callinnum varchar(14) DEFAULT '',
callinvoice varchar(28) DEFAULT '',
recallnum varchar(14) DEFAULT '',
pass enum('True','False') NOT NULL DEFAULT 'False' ,
KEY callinnum (callinnum),
KEY callintime (callintime)
)
UPDATE call SET callintime=callintime,pass="True"
上一条指令会将表中所有的记录 pass 字段设为 True 而其它的字段值均不会改变!