下面是我的代码,无论我做什么,我都无法做过渡。 “日期”总是以字符串形式出现,我想将其更改为日期时间对象。我尝试使用pd.to_datetime或pd.to_numeric等。我也尝试在SQL中执行此操作,但它给出了有关显式转换的错误。请帮助我。
GIP_SST1 = "SELECT DATEADD(Day,((cast(t1.[Pos] as Numeric)-1)-(cast(t1.[Pos] as Numeric)-1) % 24)/24,t1.[BillingDate]) AS Date,"\
+"(cast(t1.[Pos] as Numeric)-1) % 24 as Hour,"\
+"cast(t1.[InQty] as float ) as Value "\
+"FROM [PmumWebService].[dbo].[tbl_GetUzlastirmaSonucFinal] t1 "\
+"left join [PmumWebService].[dbo].[tbl_ParentCompanies] t2 on t1.Party = t2.EtsoCode "\
+"Where BillingDate between '"+StartDate+"' and '"+EndDate+"' and AgreementId ='TALGIP' and Party='40X000000000282U' "
GIP_SST1 = pd.read_sql(GIP_SST1,connection)
GIP_SST1["Date"] = pd.to_datetime(GIP_SST1["Date"],format = "%Y-%m-%d")
for i in GIP_SST1.columns:
print(type(GIP_SST[i][0]))
<class 'str'>
<class 'numpy.int64'>
<class 'numpy.float64'>
print(GIP_SST1.head())
Date Hour Value
0 2019-10-01 0.0 0.0
1 2019-10-01 1.0 0.0
2 2019-10-01 2.0 0.0
3 2019-10-01 3.0 0.0
4 2019-10-01 4.0 0.0`