Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 将nvarchar列更改为日期格式_Sql_Sql Server 2008_Tsql - Fatal编程技术网

Sql 将nvarchar列更改为日期格式

Sql 将nvarchar列更改为日期格式,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我有一个名为DT_APP的专栏,其中包含两种格式的日期 2012年9月4日下午6:19 2013-04-30 23:38.34 我需要将列中的1)转换为2),但我需要它位于nvarchar(19)中,因为数据类型位于nvarchar(19)中 我很感激它应该是Datetime格式,但是它被设置为nvarchar(19) 谢谢,因此,假设您的专栏只有这两种格式,那么您可以执行以下操作: SELECT CONVERT(NVARCHAR(19),CONVERT(DATETIME,DT_APP,100)

我有一个名为
DT_APP
的专栏,其中包含两种格式的日期

  • 2012年9月4日下午6:19
  • 2013-04-30 23:38.34
  • 我需要将列中的1)转换为2),但我需要它位于
    nvarchar(19)
    中,因为数据类型位于
    nvarchar(19)

    我很感激它应该是
    Datetime
    格式,但是它被设置为
    nvarchar(19)


    谢谢,

    因此,假设您的专栏只有这两种格式,那么您可以执行以下操作:

    SELECT CONVERT(NVARCHAR(19),CONVERT(DATETIME,DT_APP,100),120)
    FROM YourTable
    WHERE DT_APP LIKE '%[aA-zZ]%'
    
    已更新

    好的,如果需要另一列,则可以先创建它,然后填充值:

    -- First create a new column
    ALTER TABLE YourTable
    ADD DT_APP2 DATETIME;
    
    -- Fill that column with DATETIME values
    UPDATE YourTable
    SET DT_APP2 =   CASE WHEN DT_APP LIKE '%[aA-zZ]%'
                    THEN CONVERT(DATETIME,DT_APP,100)
                    ELSE CONVERT(DATETIME,DT_APP,120) END
    
    之后,您可以检查该列以查看值是否正确,然后才应删除
    DT_APP

    更新2 如果只需要更新当前值,则只需执行以下操作:

    UPDATE YourTable
    SET DT_APP = CONVERT(NVARCHAR(19),CONVERT(DATETIME,DT_APP,100),120)
    WHERE DT_APP LIKE '%[aA-zZ]%'
    

    @KaisMalique那么你可能有不好的数据,而不仅仅是你说的格式。我真的帮不了你that@KaisMalique然后将一些数据发布到SQLFIDLE上进行测试it@KaisMalique你真的应该检查你的数据,或者就你的新问题问一个新问题。@KaisMalique当然,你不知道如何设置日期的格式,但你肯定数据是正确的。@KaisMalique:到目前为止,你有一些明智的建议。如果他们为你失败了,我们怎么能在没有看到数据的情况下提供帮助?布拉姆的观点是,你不应该期望我们仅仅相信你所说的数据是好的。我还可以说:这些建议很好(我是认真的!)。但是,您可以对它们进行测试,并根据您的数据查看它们是否失败,我们不能这样做。因此,请给我们一些东西来帮助我们,而不是发表毫无帮助的声明。(
    数据很好
    在这种情况下没有帮助。)