Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql unix(.csv文件)中的数据类型_Sql_Sql Server - Fatal编程技术网

Sql unix(.csv文件)中的数据类型

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,然后解析文本(左、右)以获得月份和天数

我有一个.csv文件,我想批量插入到我的sql server数据库中,但我无法识别其中一列中的数据类型:

示例:“2019年5月10日星期五09:35:28美国东部夏令时”

我将列声明为varchar,它可以工作,但键入正确的类型以便稍后使用date/datetime进行操作会很有用

据我所知: .csv文件来自“UNIX”或类似文件:)

我找不到解决方案和示例,如果有类似的情况,我很抱歉

提前谢谢


我尝试过:从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,则不会保留时区。在这种情况下,您还需要将其转换为本地时间。