Как я выполняю datetime между двумя датами

#python #sql #jupyter-notebook

#python #sql #jupyter-записная книжка

Вопрос:

Я хотел бы сгенерировать временную метку между каждым StartDate:startTime и EndDate:EndTime .

например

 StartDate 2019-01-01 ,StartTime 01:00:00 --- only appear hour (2019-01-01 ,01)
 
EndDate 2019-01-11 ,EndTime 1:00:00.---only appear hour (2019-01-11 ,01)
 

и показывать дату и время в одном столбце таблицы

Ответ №1:

 from datetime import datetime, timezone, timedelta
import pandas as pd
def generate_date_list(from_date, to_date):
    list_of_dates = []
    start = datetime.strptime(from_date, '%Y-%m-%d')
    end = datetime.strptime(to_date, '%Y-%m-%d')
    step = timedelta(days=1)
    while start <= end:
        list_of_dates.append(start.date())
        start  = step
    
    dt = [i.strftime("%Y-%m-%d %H:%M:%S") for i in list_of_dates]
    return {"Date_Time": dt}

date_time_list = generate_date_list("2019-01-01", "2019-01-11")
df = pd.DataFrame(date_time_list)

print(df)

#You can use df.to_sql() to insert on table.
 

Комментарии:

1. Ответы только для кода не так полезны, как если бы они были обогащены объяснениями. Пожалуйста, подумайте о добавлении текста, объясняющего ваш код, сделанный вами выбор и почему.

2. спасибо, дорогой Танмей Шривастава, если я хочу создавать 24 часа в сутки, что я делаю? @Tanmay Shrivastava

Ответ №2:

Вы можете попробовать использовать функцию pandas date_range

 import pandas as pd
dates = pd.date_range(start='2009-01-01 01:00:00', end='2009-01-11 00:00:00',freq='H')
for date in dates:
    print(date)

 

Это выведет все даты между временем начала и временем окончания

Комментарии:

1. Спасибо, дорогой Джозеф томаа.