猿问

sql 取最接近日期

有这样一个需求,

2010-11-1日 土豆价格在价格信息表中有一个记录

id           name      price

1    土豆    9.0

需要查询:2009-11-1日 土豆价格 以计算环比值。

如果2009-11-1日没有土豆的价格信息,则取最接近日期的信息作为环比计算的值,

这个Sql 语句应该怎么实现?

 

ITMISS
浏览 580回答 8
8回答

人到中年有点甜

在清海扬波的基础上进行一定的修改 楼主可以一试: select top 1 price from tb where name="土豆" and  (NOT price IS NULL)  and (日期<= GETDATE()) 

慕村9548890

select top 1 * from PriceTable where CreateTime<=‘2009-11-1 23:59:29’ order by createTime desc. 

MYYA

24:00:00 是哪一天?

猛跑小猪

没有24:00:00,我假设你的是DateTime格式,因为如果再Sql中用 '2009-11-1' 就会自动转换为日期 '2009-11-1 00:00:00' , 如果有数据的生成日期是'2009-11-01,8:00:00',那么就查不到。

慕莱坞森

这样的答案是肯定不行的!!!

哈士奇WWW

为什么呢?

蓝山帝景

select top 1 price from tb order by 日期 desc

喵喔喔

这个表有时间字段吗?如果没有,知道哪条是2010-11-1的数据的话,可以根据ID来获取最近的数据的
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答