是否有一个详尽的MySQL时区列表?
似乎time_zoneMySQL设置中的有效值取决于主机操作系统,但我无法找到可能值的列表.
我需要时间来展示卡尔加里当地时间.
我有一个具有以下结构的表:
+----+-------------+----------------+------------+------------+
| id | some column | another column | inserted | edited |
+----+-------------+----------------+------------+------------+
| 1 | ... | ... | 2014-08-15 | 2016-03-04 |
| 2 | ... | ... | 2015-09-16 | 2016-10-07 |
| 3 | ... | ... | 2016-10-17 | 2016-11-16 |
+----+-------------+----------------+------------+------------+
Run Code Online (Sandbox Code Playgroud)
插入新条目时,应将当前日期添加到列中inserted。它永远不应该被改变。
编辑条目时,应将当前日期添加到该列中edited,并且每次编辑该条目时,该日期都应更新。
我的方法是在这两种情况下定义数据类型date并将标准值更改为CURDATE(). 但相反,只是CURDATE()作为字符串插入。
更新 这是一个示例查询:
CREATE TABLE `test`.`testtab`
(
`id` INT NOT NULL auto_increment,
`some column` VARCHAR(100) NULL,
`another …Run Code Online (Sandbox Code Playgroud) 在Google进行了许多研究之后,我很难找到问题的答案,但是我的说法似乎不够准确,无法为我的问题提供正确的答案。
我有一个数据库,用于存储有关客户的信息:名字,姓氏,生日等。
该问题特定于我的生日栏。该类型设置为DATE,对于每个结果,一切都在phpmyadmin中显示为DATE,但是当我在脚本中使用SELECT检索行时,将返回生日日期列,就像它是DATETIME类型一样,除非该值为0000- 00-00。
我正在使用node-mysql从我的应用程序中的mysql表检索结果。我在node-mysql之上构建了一个模块,以缩短池化所需的代码,这正是DatabasePool函数的来源。这是一个示例node.js代码,从中显示了行为:
property: {
get: function(id, callback) {
mysql.DatabasePool(function() {
this.query('SELECT birthdate FROM ICM_Contact WHERE ICM_contact_id = ? LIMIT 1', [id], function(err, rows, fields) {
console.log(rows[0]);
callback(null, ICM.contact.revive(rows[0]));
})
});
}
}
Run Code Online (Sandbox Code Playgroud)
对于给定的日期:2015-08-11,它将返回{ birthdate: Tue Aug 11 2015 00:00:00 GMT-0400 (EDT) },但是对于日期注册,它将{ birthdate: '0000-00-00' }按预期返回。
我不知道为什么phpmyadmin无论如何都能正确显示日期,但是当我从脚本执行查询时,它不会正确返回日期。
我尝试了以下操作:datetime mySQL SELECT only date
property: {
get: function(id, callback) {
mysql.DatabasePool(function() {
this.query('SELECT date(birthdate) FROM ICM_Contact WHERE ICM_contact_id = ? LIMIT 1', [id], function(err, rows, …Run Code Online (Sandbox Code Playgroud)