ms sql 日期格式的问题

luozhaoliang 2006-02-20 11:33:34

select convert(char(12),getdate())
返回:
02 20 2006 1

???怎么会返回这样的子符串呢???要怎么解决呢?


select convert(datetime,convert(char(12),getdate()))
返回:
從字元 (char) 字串轉換到 datetime 的語法錯誤。
...全文
215 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ReViSion 2006-02-22
不会呀,在我机子上
select convert(char(12),getdate())
----------------------------------
02 22 2006

select cast(convert(char(12),getdate()) as datetime)
-----------------------------------
2006-02-22 00:00:00.000

转换成功呀
回复
qingsongy 2006-02-22
set language 'simplified chinese'
回复
bugchen888 2006-02-21
select convert(datetime,convert(char(10),getdate(),120))

不行吗?
回复
luozhaoliang 2006-02-21
十在是没有办法啊,有什么方法可以改变ms sql 默认的日期格式:- 0 or 100 (*) Default mon dd yyyy hh:miAM (or PM)
回复
bugchen888 2006-02-20
把convert函数的介绍仔细看完.

select convert(nvarchar(12),getdate(),120)
回复
dutguoyi 2006-02-20
select convert(varchar(10),getdate(),120)
/*
2006-02-20

(1 row(s) affected)
*/
可以查询帮助
convert---〉第一个就是下面的介绍
Without century (yy) With century (yyyy)
Standard
Input/Output**
- 0 or 100 (*) Default mon dd yyyy hh:miAM (or PM)
1 101 USA mm/dd/yy
2 102 ANSI yy.mm.dd
3 103 British/French dd/mm/yy
4 104 German dd.mm.yy
5 105 Italian dd-mm-yy
6 106 - dd mon yy
7 107 - Mon dd, yy
8 108 - hh:mm:ss
- 9 or 109 (*) Default + milliseconds mon dd yyyy hh:mi:ss:mmmAM (or PM)
10 110 USA mm-dd-yy
11 111 JAPAN yy/mm/dd
12 112 ISO yymmdd
- 13 or 113 (*) Europe default + milliseconds dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 or 120 (*) ODBC canonical yyyy-mm-dd hh:mi:ss(24h)
- 21 or 121 (*) ODBC canonical (with milliseconds) 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
回复
hchile 2006-02-20
你想返回什么样的值呀,可以查一下convert的帮助,如果只是多了一个1,可以将字符串长度改小
回复
jamsonwoo 2006-02-20
select convert(varchar(10),getdate(),120)
回复
路人霆 2006-02-20
拜托,YYYY-MM-DD的格式也只有十位啊。那你这个char(12)又是什么意思啊。难不成让让后两位为空。那又何必永char。varchar不更好?这样的代码,让他重写好了。
回复
luozhaoliang 2006-02-20
select convert(char(12),getdate())
返回:
02 20 2006 1

???怎么会返回这样的子符串呢???要怎么解决呢?


select convert(datetime,convert(char(12),getdate()))
返回:
從字元 (char) 字串轉換到 datetime 的語法錯誤。
_______________________________________________________________

不好意思是我没有说清楚,我有一个程序,我是没有源代码的,现在出现了從字元 (char) 字串轉換到 datetime 的語法錯誤。我查到了程序出错的sql语句,那现是这个语句:'select convert(char(12),getdate())',返回出:'02 20 2006 1'引起的,要解决这个问题只能让getdate()只能返回年月日(YYYY-MM-DD)这样的值.
不知道各位高手有什么办法可以让getdate()返回'YYYY-MM-DD'格式的日期值
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-02-20 11:33
社区公告
暂无公告