我想改SQL Server默认的时间格式我希望不改变库结构和sql文,能执行形如
  Insert tt (id,aa) Values  ('1', CAST('Feb 19 1952 12:00AM' AS datetime) )
语句
我用的是SQL Server 2000简体中文个人版实际上,我是要执行一个安装盘(.msi 微软的,即能确保经过一定的设置可安装成功)
但是安装报错“从字符串转换为 datetime 时发生语法错误”
我已经查到,问题是出在时间这块(做过测试,如果将带时间的sql文改掉的话,就没问题)现在我需要知道的是,SQL Server怎样设置,可以直接执行这个安装另外,查到有人说SQL Server的时间格式有以下列出的项,可是不知道怎样才能让SQL Server认下面列出的第一种格式
0 或 100 (*) 預設值 mon dd yyyy hh:miAM (或 PM) 
1 101 USA mm/dd/yy 
2 102 ANSI yy.mm.dd 
3 103 British/French dd/mm/yy 
4 104 德文 dd.mm.yy 
5 105 義大利文 dd-mm-yy 
6 106 - dd mon yy 
7 107 - Mon dd, yy 
8 108 - hh:mm:ss 
- 9 或 109 (*) 預設值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM (或 PM) 
10 110 USA mm-dd-yy 
11 111 JAPAN yy/mm/dd 
12 112 ISO yymmdd 
- 13 或 113 (*) 歐洲預設值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h) 
14 114 - hh:mi:ss:mmm(24h) 
- 20 或 120 (*) ODBC 標準 yyyy-mm-dd hh:mi:ss(24h) 
- 21 或 121 (*) ODBC 標準 (有毫秒) yyyy-mm-dd hh:mi:ss.mmm(24h) 
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(no spaces) 
- 130* Kuwaiti dd mon yyyy hh:mi:ss:mmmAM 
- 131* Kuwaiti dd/mm/yy hh:mi:ss:mmmAM 

解决方案 »

  1.   

    --是这样吗?SET DATEFORMAT mdy
      

  2.   

    谢谢chinaandys(降龙十八炒&&蛋炒饭) 
    试过了,不行
      

  3.   

    Insert tt (id,aa) Values  ('1', CAST('Feb 19 1952 12:00AM' AS datetime) )
    --楼上语句的日期的格式错误,之所有会出错。
    --你的日期怎么得来,可以用以下语句进行测试。
    declare @datetime datetime
    set @datetime=getdate()
    print convert(datetime,@datetime,109)
    --格式为:04 19 2005  6:51PM
      

  4.   

    SET LANGUAGE us_english
    go
      

  5.   

    默认的就是第一种格式,而且从字符格式转换到datetime时,所有格式都可以识别
    只不过默认语言是英文时格式是
    mon dd yyyy hh:miAM 中文时将月份换成了数字
    mm dd yyyy hh:miAM
      

  6.   

    to 楼上各位
    sql语句没错,我就是要求支持CAST('Feb 19 1952 12:00AM' AS datetime)这种格式且,已经说明过了这个是微软的安装盘,我不可以改里面的任何东西
    我只不过是从安装过程的报错锁定到问题是出在CAST('Feb 19 1952 12:00AM' AS datetime)这个地方如果用英文版的sql server应该可以(就是说,这是微软美国做的东西,在美国用肯定没问题)
    我想知道的是怎样从sql server里面设置到能支持插入'Feb 19 1952 12:00AM‘时间格式拜托不要教我怎样改sql文了
      

  7.   

    按chinaandys(降龙十八炒&&蛋炒饭),改区域设置后
    直接录入数据,能把“Feb 19 1952 12:00AM”写进去不过写sql文插入还是报错,能插“2/19/1952”这种格式的
    “Feb 19 1952 12:00AM”这种就不行这个帖子也算是有点收获了
    明天还解决不了就结帖
    装英文版的算了
      

  8.   

    我的SQL是英文的,所以能支持楼主的这样写法。
      

  9.   


    SET LANGUAGE us_english
    就可以啊
    或者试一下
    update master..syslanguages 
    set dateformat = 'mdy',shortmonths = 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'
    where name = '简体中文'/*完成后改回来,要不然日期格式就全乱了
    update master..syslanguages
    set dateformat = 'ymd',shortmonths = '01,02,03,04,05,06,07,08,09,10,11,12'
    where name = '简体中文'
    */这种方法要求'允许对系统目录直接修改',可以在企业管理器的服务器设置里更改
      

  10.   

    试一下把用户的默认登陆语言改一下看可不可以
    exec sp_defaultlanguage 'sa','us_english'
      

  11.   

    谢谢 xspf() 把用户的默认登录语言改为english就可以了