邹大哥帮帮忙,怎样改SQL Server默认的时间格式?
我想改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
问题点数:50、回复次数:12Top
1 楼chinaandys(降龙十八炒&&蛋炒饭)回复于 2005-04-19 18:36:33 得分 10
献认时间设置,你试试改控制面板------>区域设置Top
2 楼mschen(Co-ok)回复于 2005-04-19 18:44:01 得分 3
--是这样吗?
SET DATEFORMAT mdyTop
3 楼aquariusdeng(无泪有伤之新手上路)回复于 2005-04-19 18:49:31 得分 0
谢谢chinaandys(降龙十八炒&&蛋炒饭)
试过了,不行Top
4 楼yangys(杨杨)回复于 2005-04-19 18:55:18 得分 1
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:51PMTop
5 楼xspf()回复于 2005-04-19 18:58:53 得分 5
SET LANGUAGE us_english
goTop
6 楼xspf()回复于 2005-04-19 19:03:00 得分 3
默认的就是第一种格式,而且从字符格式转换到datetime时,所有格式都可以识别
只不过默认语言是英文时格式是
mon dd yyyy hh:miAM
中文时将月份换成了数字
mm dd yyyy hh:miAMTop
7 楼aquariusdeng(无泪有伤之新手上路)回复于 2005-04-20 00:30:55 得分 0
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文了Top
8 楼aquariusdeng(无泪有伤之新手上路)回复于 2005-04-20 11:08:01 得分 0
按chinaandys(降龙十八炒&&蛋炒饭),改区域设置后
直接录入数据,能把“Feb 19 1952 12:00AM”写进去
不过写sql文插入还是报错,能插“2/19/1952”这种格式的
“Feb 19 1952 12:00AM”这种就不行
这个帖子也算是有点收获了
明天还解决不了就结帖
装英文版的算了Top
9 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-20 11:15:07 得分 3
我的SQL是英文的,所以能支持楼主的这样写法。Top
10 楼xspf()回复于 2005-04-20 13:02:09 得分 5
用
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 = '简体中文'
*/
这种方法要求'允许对系统目录直接修改',可以在企业管理器的服务器设置里更改
Top
11 楼xspf()回复于 2005-04-20 13:20:41 得分 20
试一下把用户的默认登陆语言改一下看可不可以
exec sp_defaultlanguage 'sa','us_english'Top
12 楼aquariusdeng(无泪有伤之新手上路)回复于 2005-04-20 15:24:57 得分 0
谢谢 xspf()
把用户的默认登录语言改为english就可以了
Top




