DECLARE @STR VARCHAR(10) SET @STR='Mar-08-10'SELECT CAST(REPLACE(@STR, '-', ' ') AS DATETIME) /* 2010-03-08 00:00:00.000 */
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 行受影响)已将语言设置更改为 简体中文。 **/
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+'%'
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
SET @STR='Mar-08-10'SELECT CAST(REPLACE(@STR, '-', ' ') AS DATETIME)
/*
2010-03-08 00:00:00.000
*/
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 行受影响)已将语言设置更改为 简体中文。
**/
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+'%'
set @lan=@@language
set language englishDECLARE @STR VARCHAR(10)
SET @STR='Mar-08-10'
SELECT CAST(REPLACE(@STR, '-', ' ') AS DATETIME)set language @lan
从字符串向 datetime 转换时失败。环境:2005