MySQL sequelize.js 选择使用DATETIME
还是TIMESTAMP
在MySQL数据库中,有两种时间类型:DATETIME
和TIMESTAMP
。它们都可以存储日期和时间数据,但在一些方面有所不同。
阅读更多:MySQL 教程
DATETIME
DATETIME
可以存储范围从1000年到9999年的任何日期和时间。它需要8个字节的存储空间,因此它有一些潜在的效率问题。
一个例子:
CREATE TABLE example (
id INT PRIMARY KEY AUTO_INCREMENT,
created_at DATETIME NOT NULL
);
在Node.js中,通过sequelize.js库使用DATETIME
类型的示例:
const sequelize = new Sequelize('database', 'username', 'password', {
dialect: 'mysql',
});
const Example = sequelize.define('example', {
createdAt: {
type: Sequelize.DATE,
allowNull: false,
}
});
TIMESTAMP
TIMESTAMP
可以存储范围从1970年到2038年的任何日期和时间。它只需要4个字节的存储空间,并且具有更高的效率。但是,如果您的时间戳需要存储更早或更晚的时间,请使用DATETIME
。
一个例子:
CREATE TABLE example (
id INT PRIMARY KEY AUTO_INCREMENT,
created_at TIMESTAMP NOT NULL
);
在Node.js中,通过sequelize.js库使用TIMESTAMP
类型的示例:
const sequelize = new Sequelize('database', 'username', 'password', {
dialect: 'mysql',
});
const Example = sequelize.define('example', {
createdAt: {
type: Sequelize.DATE,
allowNull: false,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
}
});
总结
在MySQL中,选择使用DATETIME
还是TIMESTAMP
,通常取决于您的需求。如果您需要存储范围更广的日期或时间,请使用DATETIME
;如果您需要效率更高的时间戳,请使用TIMESTAMP
。在sequelize.js库中,您可以使用相同的方式定义和使用这两种类型。