'Mar-08-10' 如何转datetime类型

解决方案 »

  1.   

    把Mar轉換用01/02這樣格式再做轉換
      

  2.   

    DECLARE @STR VARCHAR(10) 
    SET @STR='Mar-08-10'SELECT CAST(REPLACE(@STR, '-', ' ') AS DATETIME)
    /*
    2010-03-08 00:00:00.000
    */
      

  3.   

    declare @s varchar(20)
    set @s='Mar-08-10'
    set language english
    select cast(replace(@s,'-',' ') as datetime)
    set language 简体中文/**
    Changed language setting to us_english.-----------------------
    2010-03-08 00:00:00.000(1 行受影响)已将语言设置更改为 简体中文。
    **/
      

  4.   


    DECLARE @s NVARCHAR(20)SELECT @s='Mar-08-2010';WITH C
    AS
    (
    SELECT 'Jan' AS EName,'01' AS CName UNION ALL
    SELECT 'Feb','02' UNION ALL
    SELECT 'Mar','03' UNION ALL
    SELECT 'Apr','04' UNION ALL
    SELECT 'May','05' UNION ALL
    SELECT 'Jun','06' UNION ALL
    SELECT 'Jul','07' UNION ALL
    SELECT 'Aug','08' UNION ALL
    SELECT 'Sep','09' UNION ALL
    SELECT 'Oct','10' UNION ALL
    SELECT 'Nov','11' UNION ALL
    SELECT 'Dec','12'
    )
    SELECT 
    CAST(REPLACE(@s,EName,CName)  AS DATETIME)
    FROM C
    WHERE @s LIKE EName+'%'
      

  5.   

    declare  @lan sysname
    set @lan=@@language
    set language englishDECLARE @STR VARCHAR(10) 
    SET @STR='Mar-08-10'
    SELECT CAST(REPLACE(@STR, '-', ' ') AS DATETIME)set language @lan
      

  6.   

    消息 241,级别 16,状态 1,第 4 行
    从字符串向 datetime 转换时失败。环境:2005