有如下代码 select convert(varchar(10),'2013-4-5 13:26:35',120)这个最后的结果是什么?如果我还需要这样的代码 where convert(varchar(10),'2013-4-5 13:26:35',120)>='2013-04-05'怎么办?Convert()日期格式
解决方案 »
- SQLserver2008数据库对拷
- 再来个简单SQL(但我不会)
- SQL 服務器忙,如何知道執行了什麼語句?
- 安装sql2000出现command line option syntax error type commanrd/? for help出错,什么原因?
- 这样的函数转成sql的函数可以吗?在线等!
- 请教如何用sql管理器复制数据库表结构?
- SOS!!!两个数据库中的数据奇异丢失问题求援(日志见内)
- 异地接通SQL server 的条件?
- 怎么取得SQL SERVER的日志?
- select distinct 列名,count(*) from 表名 group by 列名 的结果如何导入另一个表中
- 一个奇怪的问题
- 求1条SQL,应该简单,但写不来.
http://msdn.microsoft.com/zh-cn/library/ms187928.aspx120表示转成yyyy-mm-dd格式
系统是不会把'2013-4-5 13:26:13'这样的字符串隐式转换成datetime格式.必须显式才行. SELECT CONVERT(VARCHAR(10),CAST('2013-4-5 13:26:22' AS DATETIME),120)这样才能得到'2013-04-05'.不然出来的结果是'2013-4-5 1'
这真是一个悲剧呀!
时间转字符串才能按格式变化,字符串转字符串就按varchar(10)截取了.
除了你自己主动转换或者声明一个变量是时间类型.你赋值给字符他会隐式转,但转不过是会报错.不只是日期有格式转换.FLOAT,MONEY 这些也有(并且有交叉).它不会主动判断能转成啥的.
我觉得'2013-4-5 13:26;22'这个时间应该是getdate()出来的
但我看了数据库,中间层,客户端的时区以及日期格式的短日期格式都已经设置成了yyyy-mm-dd了.还有什么情况下可能造成系统的getdate()获得的日期是'2013-4-5 13:26:22'这样的格式
不过这些存入datetime类型的时候都可以转换成120的时间格式
--结果是:2013-4-5 1select convert(varchar(10),cast('2013-4-5 13:26:35' as datetime),120)
--结果是:2013-04-05
select convert(varchar(10),timer,120) timer from name where convert(varchar(10),timer,120)>='2013-04-05'没太明白你什么意思......