SQL DATETIME从Excel插入?

所以即时通讯有一个相当奇怪的问题,我有一个列(可以说列A)在Excel中有数据,看起来像这样:

4/11/2015 10:14

我有一堆其他的列,但无论如何,在我的SQL插入语句在Excel中,数据(当复制出来)如下所示:42105.4561921296

其中“INSERT INTO TABLE VALUES('”&A1&“,等等)的格式为”general“,Date列的格式为”Custom“,其中M / DD / YYYY MM / HH型。

SQL列的数据types是DATETIME,所以它当然不接受奇怪的数字。

有任何想法吗? 更改“SQL INSERT”列的格式不会更改结果。

你是对的 – Excel格式只改变数字的显示方式 ,而不是单元格的基础值。 在这种情况下,单元格的值是一个优秀的date时间值,这是自1/1/1900以来的天数,具有小数的时间。

我build议使用Excel的TEXT函数将Excel的数值date时间值转换为可以插入到SQL中的文本string:

代替:

 INSERT INTO TABLE VALUES ('"&A1&"', Etc....)" 

尝试:

 INSERT INTO TABLE VALUES ('"&TEXT(A1,"YYYY-MM-DD HH:MM")&"', Etc...)" 

将date时间插入date时间列的最佳格式是以YYYY-MM-DD分钟:秒或2015-04-15 12:52

所以要从Excel插入date时间,您可以使用这组Excelfunction:(其中A1包含要保存的date时间)

 =YEAR(A1)&"-"&RIGHT("00"&MONTH(A1),2)&"-"&RIGHT("00"&DAY(A1),2)&" "&RIGHT("00"&HOUR(A1),2)&":"&RIGHT("00"&MINUTE(A1),2)&":"&RIGHT("00"&SECOND(A1),2)