Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将日期输入数据库(phpMyAdmin,SQL)_Mysql_Datetime - Fatal编程技术网

Mysql 将日期输入数据库(phpMyAdmin,SQL)

Mysql 将日期输入数据库(phpMyAdmin,SQL),mysql,datetime,Mysql,Datetime,我想在数据库中输入一些日期/时间。所有文件的格式如下: 2015-07-15T05:25:13.292+00:00 我不知道日期的+00:00方面意味着什么,除了00:00之外,似乎没有任何其他值。目前,我有下面的SQL语句来创建表,尽管我想找出格式化表和日期SQL语句的正确方法 当前表创建: CREATE TABLE `bookreservation` (`StartTime` varchar(50) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=l

我想在数据库中输入一些日期/时间。所有文件的格式如下:

2015-07-15T05:25:13.292+00:00
我不知道日期的
+00:00
方面意味着什么,除了00:00之外,似乎没有任何其他值。目前,我有下面的SQL语句来创建表,尽管我想找出格式化表和日期SQL语句的正确方法

当前表创建:

CREATE TABLE `bookreservation` (`StartTime` varchar(50) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1;
插入示例:

INSERT INTO `bookreservation` (`StartTime`) VALUES ('2015-07-15T00:00:00.851+00:00');

什么是合适的
CREATE TABLE
-语句?这将如何将我的INSERT更改为语句?

+00:00是时区信息,告诉您给定的时间比UTC早多少或晚多少。第一个坏消息是标准的mysql日期时间格式不包含时区信息。任何datetime值的时区都由会话的(mysql会话)时区设置确定

如果时区数据总是+00:00,那么我就不会太担心它了-除非您的服务器位于不同的时区-我只需切掉时区并将数据存储在datetime字段中


如果时区数据可以不同(我想知道它是否可以不同,不要基于外观进行调用),那么我会将datetime存储在datetime字段中,并为时区设置一个单独的字段。如果您只想显示时区信息,则时区字段可以是字符类型。如果您想根据时区数据进行计算,那么我将使用十进制字段(差异可能不是一个整小时)。

看起来
+00:00
是时区偏移量。在您的情况下,如果可以安全地忽略时区偏移,您可以使用
STR\u TO\u DATE()

STR_TO_DATE('2015-07-15T05:25:13.292+00:00','%Y-%m-%dT%h:%i:%s.%f+00:00')
您可以在
INSERT
语句中使用此选项:

INSERT INTO `bookreservation` (StartTime) 
 VALUES (STR_TO_DATE('2015-07-15T05:25:13.292+00:00','%Y-%m-%dT%h:%i:%s.%f+00:00'));
这将允许您对列使用
DATETIME
类型:

CREATE TABLE `bookreservation` (`StartTime` DATETIME DEFAULT NULL)

我猜+00:00是UTC偏移量。使用这种格式,当我导入包含所有INSERT语句的.sql文件时,表中的所有内容都显示为NULL。我还简单地将+00:00切掉,但仍然得到NULL值。是否包括
stru TO_DATE()
在您的插入中?它们看起来像这样:插入到
bookreservation
(开始时间)值(stru TO_DATE('2015-07-15T00:08:01.630','%Y-%m-%dT%H:%i:%s.f');注意,`标记在我的insert语句中是关于图书预订的。只是这里没有显示他们。