Pandas version checks

  • [X] I have checked that this issue has not already been reported.

  • [X] I have confirmed this bug exists on the latest version of pandas.

  • [x] I have confirmed this bug exists on the main branch of pandas.

Reproducible Example

polars as pl
query = "SELECT getdate(), t.* FROM table "
df_sql = pl.read_sql(query, conn_uri_db1)`
df_sql.schema
df_sql.to_pandas(use_pyarrow_extension_array=True).to_sql('table_name', conn_uri_db2, if_exists='replace')

>Error message: 'ArrowExtensionArray' object has no attribute 'to_pydatetime'```

Issue Description

Hi everyone. I was trying to take data from one database and write it into another, using Polars, but I was getting this error, analyzing the trace it occurs when polars uses pandas behind the scene to convert their dataframe to pandas dataframe and use the to_sql command, so I reproduced what polars does. Apparently the error only occurs when using a dataframe that has datetime columns. Thanks in advance for your help.

Here is the full trace error:

``` AttributeError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_14916\424779397.py in ----> 1 df_sql.to_pandas(use_pyarrow_extension_array=True).to_sql('teste_2', con, if_exists='replace')

~\Anaconda3\lib\site-packages\pandas\core\generic.py in to_sql(self, name, con, schema, if_exists, index, index_label, chunksize, dtype, method) 2985 from pandas.io import sql 2986 -> 2987 return sql.to_sql( 2988 self, 2989 name,

~\Anaconda3\lib\site-packages\pandas\io\sql.py in to_sql(frame, name, con, schema, if_exists, index, index_label, chunksize, dtype, method, engine, **engine_kwargs) 693 ) 694 --> 695 return pandas_sql.to_sql( 696 frame, 697 name,

~\Anaconda3\lib\site-packages\pandas\io\sql.py in to_sql(self, frame, name, if_exists, index, index_label, schema, chunksize, dtype, method, engine, **engine_kwargs) 1736 ) 1737 -> 1738 total_inserted = sql_engine.insert_records( 1739 table=table, 1740 con=self.connectable,

~\Anaconda3\lib\site-packages\pandas\io\sql.py in insert_records(self, table, con, frame, name, index, schema, chunksize, method, **engine_kwargs) 1323 1324 try: -> 1325 return table.insert(chunksize=chunksize, method=method) 1326 except exc.SQLAlchemyError as err: 1327 # GH34431

~\Anaconda3\lib\site-packages\pandas\io\sql.py in insert(self, chunksize, method) 922 raise ValueError(f"Invalid parameter method: {method}") 923 --> 924 keys, data_list = self.insert_data() 925 926 nrows = len(self.frame)

~\Anaconda3\lib\site-packages\pandas\io\sql.py in insert_data(self) 890 vals = ser._values 891 if vals.dtype.kind == "M": --> 892 d = vals.to_pydatetime() 893 elif vals.dtype.kind == "m": 894 # store as integers, see GH#6921, GH#7076

AttributeError: 'ArrowExtensionArray' object has no attribute 'to_pydatetime' ```

Expected Behavior

I expect to be able to write columns with datetime type into my database.

Installed Versions

INSTALLED VERSIONS ------------------ python : 3.9.13.final.0 python-bits : 64 pandas : 1.5.3 numpy : 1.21.5 pytz : 2022.1 dateutil : 2.8.2 setuptools : 63.4.1 pip : 22.2.2 Cython : 0.29.32 pytest : 7.1.2 hypothesis : None sphinx : 5.0.2 blosc : None feather : None xlsxwriter : 3.0.3 lxml.etree : 4.9.1 html5lib : None pymysql : None psycopg2 : None jinja2 : 2.11.3 IPython : 7.31.1 pandas_datareader: None bs4 : 4.11.1 bottleneck : 1.3.5 brotli : fastparquet : None fsspec : 2023.3.0 gcsfs : None matplotlib : 3.5.2 numba : 0.55.1 numexpr : 2.8.3 odfpy : None openpyxl : 3.0.10 pandas_gbq : None pyarrow : 11.0.0 pyreadstat : None pyxlsb : None s3fs : 2023.3.0 scipy : 1.9.1 snappy : sqlalchemy : 2.0.5.post1 tables : 3.6.1 tabulate : 0.8.10 xarray : 0.20.1 xlrd : 2.0.1 xlwt : None zstandard : None tzdata : None