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 的語法錯誤。
...全文
242 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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)
新鲜鱼排 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'格式的日期值

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧