开发者社区> 问答> 正文

sql server数据库语句问题

screenshot
sxrq是varchar(10)是表中的日期,格式为xxxx-xx-xx,想用getdate()方法获取当前日期,并且转换成了varchar(10)格式也为xxxx-xx-xx,但执行时sxrq<'CONVERT(varchar(10), GETDATE(), 23)'好像没起到作用,求大神解释。
select * from Stock where sxrq<'2015-05-13' 这样就可以上面那样就不行这是为什么呢?

展开
收起
吴孟桥 2016-06-12 16:54:13 2499 0
2 条回答
写回答
取消 提交回答
  • 阿里云数据库专家,负责SQL Server数据库产品线。SQL Server从业10年,经历过SQL 2000、SQL 2005、SQL 2008、SQL 2008R2、SQL 2012、SQL 2014、SQL 2016和SQL on Linux各个版本。

    语句中的sxrq<'CONVERT(varchar(10), GETDATE(), 23)',小于符号右边部分,Convert函数已经将时间类型转化为了字符类型,所以,外部不需要在用单引号了。否则,SQL语句会把右边整个串当成字符串,这样就是字符串比较了,而不是时间类型的比较了。

    2019-07-17 19:34:34
    赞同 展开评论 打赏
  • 'CONVERT(varchar(10), GETDATE(), 23)' 这个怎么带引号了,去掉

    2019-07-17 19:34:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载