Sql unix(.csv文件)中的数据类型
我有一个.csv文件,我想批量插入到我的sql server数据库中,但我无法识别其中一列中的数据类型: 示例:“2019年5月10日星期五09:35:28美国东部夏令时” 我将列声明为varchar,它可以工作,但键入正确的类型以便稍后使用date/datetime进行操作会很有用 据我所知: .csv文件来自“UNIX”或类似文件:) 我找不到解决方案和示例,如果有类似的情况,我很抱歉 提前谢谢Sql unix(.csv文件)中的数据类型,sql,sql-server,Sql,Sql Server,我有一个.csv文件,我想批量插入到我的sql server数据库中,但我无法识别其中一列中的数据类型: 示例:“2019年5月10日星期五09:35:28美国东部夏令时” 我将列声明为varchar,它可以工作,但键入正确的类型以便稍后使用date/datetime进行操作会很有用 据我所知: .csv文件来自“UNIX”或类似文件:) 我找不到解决方案和示例,如果有类似的情况,我很抱歉 提前谢谢 我尝试过:从unixstamp开始,我使用varchar,然后解析文本(左、右)以获得月份和天数
我尝试过:从unixstamp开始,我使用varchar,然后解析文本(左、右)以获得月份和天数的名称。解析是通往goLooks的方法,就像正确的数据类型是
datetimeoffset
。您可能希望将数据放入暂存表中,并使用SQL Server将数据转换为datetimeoffset
,因为您可以使用函数操作值并为convert
提供样式代码。大容量插入将无法按需解析字符串。这也可以在T-SQL中使用暂存表中的varchar和一些难看的字符串解析来完成。我建议您在ETL应用程序中解析该值。例如,使用SqlBulkCopy的PowerShell脚本可以使用$dateTime=[DateTimeOffset]::ParseExact(“2019年9月8日07:36:58 EDT”,“MMM-dd-HH:mm:ss-EDT-yyyy”,[CultureInfo]::InvariantCulture)
解析值。请注意,如果目标列为datetime/dattime2,则不会保留时区。在这种情况下,您还需要将其转换为本地时间。