【问题标题】:Convert NVARCHAR Date to Date/Datetime Format将 NVARCHAR 日期转换为日期/日期时间格式
【发布时间】:2013-11-04 19:30:44
【问题描述】:
OrderCreatedDate
9/20/2013 12:01:59 AM

数据从 CSV 导入为 NVARCHAR,我想将其转换为 datedatetime 格式

但是,如果我尝试将其作为日期/日期时间导入,它会奇怪地混淆某些记录上的月/日

如果我尝试转换或转换,则会收到以下错误:

将 nvarchar 数据类型转换为 datetime 数据类型导致值超出范围。

日期格式显示在这篇文章的顶部

谢谢

【问题讨论】:

  • 您的 SQL Server 设置为什么语言?运行select @@language 并报告输出
  • 如何导入数据?真正的解决方案是使用导入工具为 CSV 指定正确的格式。 SSIS 允许这样做,BULK INSERT 也允许。

标签: sql sql-server date datetime


【解决方案1】:

@Madhivanan 的回答是有效的。但是我更喜欢使用 convert 进行转换。想象在视图中执行此操作。每次调用视图时,都需要先设置日期格式。

select convert(datetime, OrderCreatedDate, 101) from table

【讨论】:

    【解决方案2】:

    如果数据格式是mdy,试试这个

    set dateformat mdy
    
    select cast(OrderCreatedDate as datetime) from table
    

    【讨论】:

    • 谢谢似乎奏效了!您不会碰巧知道如何在导入 csv 时设置日期格式,以便在导入时进行转换?
    • 硬编码日期格式是一个非常的坏主意。至少,每个 CSV 都有自己的格式。另一个问题是,您几乎肯定会在某个时候忘记重置日期格式,并最终得到来自其余批次的奇怪数据
    • 好吧,我需要尝试的是在 asp 数据视图中“设置 dateformat mdy”,请参阅 stackoverflow.com/questions/19766854/…,如果可以,请您帮忙
    猜你喜欢
    • 1970-01-01
    • 2017-07-15
    • 2015-09-23
    • 2021-05-27
    • 2021-11-12
    • 2021-01-17
    • 2012-11-26
    • 2020-04-02
    • 2015-10-25
    相关资源
    最近更新 更多