如何转换日期到格式化好的字符串型

zhobin 2003-07-04 06:14:29
我要执行以下查询,要将visit_date转换成相应格式才能转换,应如何转换
visit_date 为datetime型
select * from visit_date where visit_date > '2003/2/2 5'
...全文
48 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kfcn 2003-07-05
  • 打赏
  • 举报
回复
同意.邹建
zjcxc 2003-07-04
  • 打赏
  • 举报
回复
所以说嘛,你将字符串转换为日期进行比较不就可以解决问题了吗?
cast('2003-9-3' as datetime)
dickeybird888 2003-07-04
  • 打赏
  • 举报
回复
qiubolecn(来自差生市) 说的对,如果采用字符串比较的话会出现以下的问题:
比如数据库中有三个日期
2003-1-3
2003-9-3
2003-11-3
如果按照字符串比较将出现如下结果:(从大到小排列)
2003-9-3
2003-11-3
2003-1-3
请大家一定注意此问题
Methodor 2003-07-04
  • 打赏
  • 举报
回复
Convert(char,...)~
zjcxc 2003-07-04
  • 打赏
  • 举报
回复
将字符转换为日期进行比较

select * from visit_date where visit_date > cast('2003/2/2 5' as datetime)
kfcn 2003-07-04
  • 打赏
  • 举报
回复
1> select isdate('2003/2/2')
2> go

-----------
1

(1 行受到影响)
1> select isdate('2003/2/2 5')
2> go

-----------
0

(1 行受到影响)
1>
//说明这个日期'2003/2/2 5'有错误.
把两个全转成日期型.用convert函数.
再用日期比较函数datediff来比较.
caiyunxia 2003-07-04
  • 打赏
  • 举报
回复
select * from visit_date where datediff(dy,'2003/2/2 5',visit_date)>1
qiubolecn 2003-07-04
  • 打赏
  • 举报
回复
楼上的两位在处理时,都偏重于使用字符串来进行比较,当SQL SERVER在处理隐式转换时,经常会有些小小的设置毛病,比如时区,等等,因此,最好还是将我们的字符串转换成日期来进行处理最好了。
强烈建议
将你的字符串用CONVERT转换成日期。
a1n1 2003-07-04
  • 打赏
  • 举报
回复
select * from visit_date where cast(visit_date as varchar(20)) > '2003/2/2 5'
zosky 2003-07-04
  • 打赏
  • 举报
回复
select * from visit_date where convert(varchar,visit_date,111) > '2003/2/2 5'

22,294

社区成员

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

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