python - 将日期时间格式从 python 更改为 SQL Server 时出错
问题描述
我正在使用 Python 将我的数据加载到 SQL Server 中。我想将格式ScheduledStartDate
从“20-APR-2021 09:00:00 AM”更改为“2021-04-20 09:00:00”
df['ScheduledStartDate'] = pd.to_datetime(df['ScheduledStartDate'])
df['ScheduledStartDate'] = df['ScheduledStartDate'].dt.strftime('%Y-%m-%d %H:%M:%S')
但是,我收到此错误
将 nvarchar 数据类型转换为 datetime 数据类型导致值超出范围。
解决方案
在 SQL Serverdatetime
中是一种数据类型,即您的 ScheduledStartDate 列的类型。在内部,您在该表中插入的日期并没有真正格式化,您可以阅读这篇文章的第一个失败关于这个常见错误的信息。但是,当您执行 SELECT 并格式化日期20-APR-2021 09:00:00 AM
时,因为它不是以这种方式存储的,它只是以该格式显示为默认格式并匹配您的操作系统日期格式首选项。
话虽如此,您应该从 python 存储日期而不对其进行格式化,然后在检索日期时间列时对其进行格式化。喜欢:
SELECT CONVERT(varchar,ScheduledStartDate,20), *
FROM table
适合20
在哪里Date Format Code
yyyy-mm-dd hh:mm:ss
推荐阅读
- java - 杀死我的应用程序后广播接收器不起作用
- c - 你如何告诉 Frama-C 和 Eva 入口点的参数被假定为有效?
- javascript - 网页过期时自动重新加载
- junit - Java - JDBC 连接的 JUnit 测试用例 - Oracle
- amazon-s3 - 用于使用代理服务器上传到 S3 的 aws 请求标头中的 Java Proxy-Authorization
- logging - 如何将 Azure DataFactory 日志存储到 ApplicationInsights
- javascript - 如何使用特定索引列表视图添加选项
- excel - 将excel范围作为图片粘贴到ppt中的最佳方法是什么
- javascript - 将复选框动态添加到 DOM 的有线问题
- sql - SQL Server - 跨行汇总日期范围,同时保留间隙