使用Excel生成SQL - 问题处理日期字段

时间:2011-01-18 11:35:18

标签: sql excel

我有一个excel文件,其中包含我的客户想要放入数据库的数据。我在数据左边生成了一个看起来像这样的列(显然改变了这里的字段名称):

="INSERT INTO TBL_CUSTOMER
                      (FIELD, FIELD, FIELD, FIELD, FIELD, 
                      FIELD, FIELD, FIELD, FIELD, FIELD, 
                      FIELD, FIELD, FIELD, FIELD, 
                      FIELD, FIELD, FIELD, FIELD, FIELD, 
                      FIELD, FIELD, FIELD, FIELD, 
                      FIELD, FIELD, CUSTOMER_DATE_REGISTERED)
VALUES     ('"&D2&"','"&E2&"','"&F2&"','"&G2&"','"&H2&"','"&I2&"','"&J2&"','"&K2&"','"&L2&"','"&M2&"','"&N2&"','"&O2&"','"&P2&"','"&Q2&"','"&R2&"','"&S2&"','"&T2&"','"&U2&"','"&V2&"','"&W2&"','"&X2&"','"&Y2&"','"&Z2&"','"&AA2&"','"&AB2&"','"&AC2&"')"

一切都很完美,但问题是最后一项(Cell AC2)是格式为25/12/2010 08:45:45的日期。 Excel正在将其读作40537.3651041667。

知道如何让它显示正确吗?

希望你们能帮忙!

编辑:Nomatted我为AC2设置的单元格格式我仍然将该随机数拉入查询

3 个答案:

答案 0 :(得分:13)

尝试TEXT()函数......

TEXT(AC2, "dd/mm/yyy hh:mm:ss")

这将返回指定格式

的值的字符串
="INSERT INTO TBL_CUSTOMER
                      (FIELD, FIELD, FIELD, FIELD, FIELD, 
                      FIELD, FIELD, FIELD, FIELD, FIELD, 
                      FIELD, FIELD, FIELD, FIELD, 
                      FIELD, FIELD, FIELD, FIELD, FIELD, 
                      FIELD, FIELD, FIELD, FIELD, 
                      FIELD, FIELD, CUSTOMER_DATE_REGISTERED)
VALUES 
    ('"&D2&"','"&E2&"','"&F2&"','"&G2&"','"&H2&"','"&I2&"','"&J2&"','"&K2&"','"&L2&"','"&M2&"','"&N2&"','"&O2&"','"&P2&"','"&Q2&"','"&R2&"','"&S2&"','"&T2&"','"&U2&"','"&V2&"','"&W2&"','"&X2&"','"&Y2&"','"&Z2&"','"&AA2&"','"&AB2&"',
'"&TEXT(AC2, "dd/mm/yyy hh:mm:ss")&"')"

答案 1 :(得分:0)

使用具有区域无关格式的TEXT函数

TEXT(AC2, "yyyymmdd hh:mm:ss")

TEXT(AC2, "yyyy-mm-ddThh:mm:ss")

答案 2 :(得分:0)

为此苦了一段时间。使用分号代替昏迷。

(Office16)

TEXT(AC2;“ dd / mm / yyy hh:mm:ss”)

代替

TEXT(AC2,“ dd / mm / yyy hh:mm:ss”)