Использование Excel для генерации SQL - проблема с обработкой поля даты - PullRequest
3 голосов
/ 18 января 2011

У меня есть файл 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&"')"

Все работает отлично, но проблема в том, что последний элемент (ячейка AC2)дата в формате 25.12.2010 08:45:45.Excel читает это как 40537.3651041667.

Есть идеи, как заставить его выглядеть правильно?

Надеюсь, вы, ребята, можете помочь!

Edit: Nomatted, какой я установил формат ячейки для AC2. Я все еще получаю это случайное число, включенное в запрос

Ответы [ 3 ]

13 голосов
/ 18 января 2011

Попробуйте функцию 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")&"')"
0 голосов
/ 14 января 2019

Боролся с этим некоторое время. Используйте точку с запятой вместо комы.

(Office16)

ТЕКСТ (AC2; "дд / мм / ггг чч: мм: сс")

Вместо

ТЕКСТ (AC2, "дд / мм / ггг чч: мм: сс")

0 голосов
/ 18 января 2011

Используйте функцию TEXT с независимым от региона форматом

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

или

TEXT(AC2, "yyyy-mm-ddThh:mm:ss")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...