извлечь дату / время из SQL таблицы или текстового файла, используя python - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь извлечь некоторые данные из базы данных SQL. У меня есть пара проблем с этим извлечением.

Вопрос 1: У меня есть столбец даты и времени в БД, и когда я извлекаю данные, я получаю запись как

datetime.datetime(2020, 3, 12, 8, 32)

Я пытался следовать предложению, приведенному в -
получение правильного формата даты из SQL результатов поиска (datetime.datetime)

, но предложение не работает для меня, и я получаю сообщение об ошибке -

 AttributeError: 'str' object has no attribute 'strftime'

Я могу усечь данные, но я знаю, что это неправильный подход. Я хочу знать, нужно ли исправить запрос, чтобы получить данные в нужном мне формате - '2020-03-12 08:32'.

Я пытался ограничить вывод курсора и не могу чтобы сделать это. Я попытался поместить это в файл и прочитать его оттуда, и у меня возникла та же проблема.

Второй вопрос - Когда я пытаюсь получить только поле Дата, я получаю следующее сообщение об ошибке

 ValueError: could not convert string to float: "('2020-03-12'"

Редактировать 1:

Пожалуйста, найдите приведенный ниже пример кода, который я написал -

import pyodbc
import pandas as pd
from sklearn.preprocessing import StandardScaler

conn = pyodbc.connect(Driver={SQL Server};
                      server=localhost;
                      database=database;)
cursor=conn.cursor()
cursor.execute("select data_column from table_name")
file_analysis = open(RUN_ANALYSIS.txt, 'w')
for row in cursor:
    file_analysis.write(str(row))
    file_analysis.write('\n')

file_analysis = open(RUN_ANALYSIS.txt, 'r')
for line in file_analysis:
    print(line)

С приведенным выше кодом я получаю следующий вывод -

(datetime.datetime(2020, 3, 13, 2, 0), ))

Можете ли вы помочь мне с этим.

1 Ответ

0 голосов
/ 14 марта 2020

Надеюсь, это поможет:

Вы должны напечатать объект даты в виде строки

x = datetime.datetime(2020, 3, 12, 8, 32)
print(x)

Вывод:

2020-03-12 08:32:00

Или вы можете преобразовать в str

str(x)

Выход:

'2020-03-12 08:32:00'

T получить дату:

print(x.date())

Выход:

2020-03-12

Или вы можете использовать strftime() с форматом даты или времени для получения даты или времени

print(x.strftime('%x'))
print(x.strftime('%X'))

Вывод:

03/12/20
08:32:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...