Преобразование метки времени в дату_ - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь создать настольное приложение для генерации запросов SQL из Excel через фрейм данных pandas.Я могу сгенерировать оператор вставки, но я получаю данные в формате time_stamp (где столбец - дата), я хочу преобразовать его в формат to_date, пожалуйста, предложите лучший способ сделать это.Также, пожалуйста, предложите сгенерировать оператор выбора / обновления, используя тот же код / ​​тот же вид.Вот мой входной файл: - Excel:
Excel

Вот мой код: -

from pandas import *
table_name="ADI"
file_name=pandas.read_excel('supermarke.xlsx')    

    def SQL_Insert(SOURCE, TARGET):
        sql_texts = []
        for index, row in SOURCE.iterrows():
            sql_texts.append(
                'INSERT INTO ' + TARGET + ' (' + str(', '.join(SOURCE.columns)) + ')   VALUES ' + str(tuple(row.values))+";")

        return ('\n'.join(sql_texts))
    print(SQL_Insert(file_name, table_name))**

Вот результат: -

INSERT INTO ADI (ID, Address, City, State, Country, Supermarket Name, Number of Employees, DATE)   VALUES (1, '3666 21st St', 'San Francisco', 'CA 94114', 'USA', 'Madeira', 8, Timestamp('2018-01-12 00:00:00'));
INSERT INTO ADI (ID, Address, City, State, Country, Supermarket Name, Number of Employees, DATE)   VALUES (2, '735 Dolores St', 'San Francisco', 'CA 94119', 'USA', 'Bready Shop', 15, Timestamp('2018-01-12 00:00:00'));
INSERT INTO ADI (ID, Address, City, State, Country, Supermarket Name, Number of Employees, DATE)   VALUES (3, '332 Hill St', 'San Francisco', 'California 94114', 'USA', 'Super River', 25, Timestamp('2018-01-12 00:00:00'));
INSERT INTO ADI (ID, Address, City, State, Country, Supermarket Name, Number of Employees, DATE)   VALUES (4, '3995 23rd St', 'San Francisco', 'CA 94114', 'USA', "Ben's Shop", 10, Timestamp('2018-01-12 00:00:00'));

Вот что я ожидаю: -

INSERT INTO ADI (ID, Address, City, State, Country, Supermarket Name, Number of Employees, DATE)   VALUES (1, '3666 21st St', 'San Francisco', 'CA 94114', 'USA', 'Madeira', 8,  TO_DATE('12/01/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS');
INSERT INTO ADI (ID, Address, City, State, Country, Supermarket Name, Number of Employees, DATE)   VALUES (2, '735 Dolores St', 'San Francisco', 'CA 94119', 'USA', 'Bready Shop', 15, TO_DATE('12/01/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS');
INSERT INTO ADI (ID, Address, City, State, Country, Supermarket Name, Number of Employees, DATE)   VALUES (3, '332 Hill St', 'San Francisco', 'California 94114', 'USA', 'Super River', 25,TO_DATE('12/01/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS');
INSERT INTO ADI (ID, Address, City, State, Country, Supermarket Name, Number of Employees, DATE)   VALUES (4, '3995 23rd St', 'San Francisco', 'CA 94114', 'USA', "Ben's Shop", 10, TO_DATE('12/01/2018 00:00:00', 'MM/DD/YYYY HH24:MI:SS');

Пожалуйста, предложите, как это сделать, и, пожалуйста, не предлагайте делать это жестко, как: -

df["DATE"] = df.DATE.dt.date

Я создаю приложение, поэтому, пожалуйста, предложите, как сделать это в общем виде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...