在MYSQL中插入当前时间,就象SQLSERVER的GETDATE()一样,以及对mysql中的时间日期操作。

在看sql教程的时候,我学的是mysql,但是教程上面的一点在mysql里面是不支持的,所以就找了其他的替代的办法

sql教程上面是这样的:
通过使用类似 GETDATE() 这样的函数,DEFAULT 约束也可以用于插入系统值:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
)

但是会报错:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'getdate())' at line 1
因为mysql是不支持getdate()函数的,所以就需要把getdate()函数换了。

now()函数以`yyyy-mm-dd hh:mm:ss返回当前的日期时间,可以直接存到datetime字段中。
curdate()以’yyyy-mm-dd’的格式返回今天的日期,可以直接存到date字段中。
curtime()以’hh:mm:ss’的格式返回当前的时间,可以直接存到time字段中。

所以可以把getdate()换成now()然后把orderdate 的值类型date换成 datetime

然后执行:
create table ord (o_id int not null,number int not null,p_id int,datetime datetime default now());
Query OK, 0 rows affected (0.34 sec)
就好了

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

MySQL Date 函数

函数 作用 实例网址
NOW() 返回当前的日期和时间 http://www.w3school.com.cn/sql/func_curtime.asp
CURDATE() 返回当前的日期 http://www.w3school.com.cn/sql/func_curtime.asp
CURTIME() 返回当前的时间 http://www.w3school.com.cn/sql/func_curtime.asp
DATE() 提取日期或日期/时间表达式的日期部分 http://www.w3school.com.cn/sql/func_date.asp
EXTRACT() 返回日期/时间的单独部分 http://www.w3school.com.cn/sql/func_extract.asp
DATE_ADD() 向日期添加指定的时间间隔 http://www.w3school.com.cn/sql/func_date_add.asp
DATE_SUB() 从日期减去指定的时间间隔 http://www.w3school.com.cn/sql/func_date_sub.asp
DATEDIFF() 返回两个日期之间的天数 http://www.w3school.com.cn/sql/func_datediff_mysql.asp
DATE_FORMAT() 用不同的格式显示日期/时间 http://www.w3school.com.cn/sql/func_date_format.asp

MYSQL Date 数据类型

MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式:YYYY-MM-DD
DATETIME - 格式:YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS
YEAR - 格式:YYYY 或 YY

原文地址:https://www.cnblogs.com/nyist-xsk/p/7280905.html