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)