我的应用程序中有日期选择器。我想将所选日期插入数据类型为DATETIME
的MySQL数据库列中。
这是使用console.log(date.value)
在Angular中的日期选择器的值:
Tue Nov 12 2019 00:00:00 GMT+0200 (Israel Standard Time)
MySQL插入日期需要转换成哪种格式?
您可以使用此:{{您的日期|日期:'yyy-MM-dd HH:MM:SS'}},然后将其发送到控制器,然后保存到db
为了确保一致性,将所有日期存储在UTC时区中会很有帮助。
const isoDateString: string = datePickerDate.toISOString();
这还可以通过JSON将日期发送到服务器。
cursor.execute("SET time_zone = '+00:00'")
在Node.js服务器上,解析ISO日期字符串(来自步骤1),格式为:'YYYY-MM-DD HH:MM:SS'
const isoDate = new Date(isoDateString);
const mySQLDateString = isoDate.toJSON().slice(0, 19).replace('T', ' ');
MySQL识别以下格式的DATETIME和TIMESTAMP值:
作为'YYYY-MM-DD HH:MM:SS'或'YY-MM-DD HH:MM:SS'中的字符串格式。这里也允许使用“宽松”语法:任何标点符号字符可用作日期部分或时间之间的分隔符部分。例如,“ 2012-12-31 11:30:45”,“ 2012 ^ 12 ^ 31 11 + 30 + 45”,'2012/12/31 11 * 30 * 45'和'2012 @ 12 @ 31 11 ^ 30 ^ 45'是等效的。
唯一在日期和时间部分与小数秒部分是小数点。
日期和时间部分可以用T而不是空格分隔。对于例如'2012-12-31 11:30:45''2012-12-31T11:30:45'是等效的。
作为'YYYYMMDDHHMMSS'或'“ YYMMDDHHMMSS”格式,前提是该字符串可以作为日期使用。例如,“ 20070523091528”和“ 070523091528”被解释为'2007-05-23 09:15:28',但'071122129015'是非法的(它具有无意义的分钟部分),并变为“ 0000-00-00 00:00:00”。
以YYYYMMDDHHMMSS或YYMMDDHHMMSS格式提供的数字该数字作为日期有意义。例如19830905132800和830905132800被解释为“ 1983-09-05 13:28:00”。