日期:2014-05-20  浏览次数:20623 次

帮忙解决个sql子句的问题
select left(convert(varchar(12),dayinfo,126),10) as dd from blogs//这行是用来转化日期格式的
select min(a.blog_id) from blogs a where a.dayinfo = '2008-04-09'//这行是查询id的。。。
我想查询日期转化以后的id怎么做啊
也就是用第一句子做为第二个的查询子句。。。。帮忙修改下。。。


------解决方案--------------------
只要一个结果的话。。。
直接拼其来。。。
------解决方案--------------------
探讨
只要一个结果的话。。。
直接拼其来。。。

------解决方案--------------------
你的数据库是什么?Oracle吗?
你直接用

a.dayinfo = ?

这个作为参数传进来才是更好的主意!
------解决方案--------------------
楼主是什么数据库啊?没有必要用嵌套查询吧
------解决方案--------------------
探讨
select min(a.blog_id) from blogs a where a.dayinfo = (select left(convert(varchar(12),dayinfo,126),10) as dd from blogs)
这个样子不可以啊。。。我是想把子句查询出来的结果等于 '2008-04-09'然后求子句的查询结果等于 '2008-04-09'的id
select min(a.blog_id) from blogs a where select left(convert(varchar(12),dayinfo,126),10) as dd from blogs= '2008-04-09'


基本意思是上面那样的。。。

------解决方案--------------------
SQL code

select min(a.blog_id) from blogs a where a.dayinfo in (select left(convert(varchar(12),dayinfo,126),10) as dd from blogs where dayinfo='2008-04-09')

------解决方案--------------------
探讨
SQL codeselectmin(a.blog_id)fromblogs awherea.dayinfoin(selectleft(convert(varchar(12),dayinfo,126),10)asddfromblogswheredayinfo='2008-04-09')

这个意思?

------解决方案--------------------
探讨
哈。。。谢谢。。是第二个这个意思。。。
但是这样的话精确度却很难把握比如我查询where dayinfo='2008-04-09'的时候这个时间: 2008-04-09 00:00:00.000的可以查到,但是2008-04-09 01:01:00.000,这个就查不到了。。。。因为他默认'2008-04-09'转化成datetime以后就2008-04-09 00:00:00.000,我现在是想只关心日期,不管时间只要是2008-04-09 的就可以查出来。。。这个好做吗?
我前面的这个字句就是想用来限制日志格式的 …