【发布时间】:2014-10-25 16:30:30
【问题描述】:
我有带列的表 喜欢
----------------------------------------------------
DateFrom | Dateto | TimeFrom | TimeTo| ZoneID |
----------------------------------------------------+
2014-09-01 | 2014-09-30 | 03:00 | 08:00 | 1 |
----------------------------------------------------+
2014-09-01 | 2014-09-30 | 09:00 | 15:00 | 1 |
----------------------------------------------------+
2014-09-01 | 2014-09-30 | 16:00 | 23:00 | 1 |
----------------------------------------------------+
2014-09-01 | 2015-09-30 | 03:00 | 08:00 | 2 |
我想在 datefrom 和 dateto 、timefrom 和 timeto 之间获取记录 如果我尝试获取日期 2014-10-03 那么它会显示所有记录请帮助如何使用 sql 查询获取特定记录。 提前致谢。
我想获取todate和fromdate、timefrom和timeto之间的记录
我写的这个查询请检查。
SELECT
Tariff.TariffZoneID,CAST(TariffDate.TimeFrom AS VARCHAR(32)) AS TimeFrom ,CAST(TariffDate.TimeTo AS VARCHAR(32)) AS TimeTo,'2014-09-25 00:00:00.000' AS DateFrom,'2014-09-25 00:00:00.000' AS DateTo,TariffZone.Name,TariffZone.MaximumPrice,
TariffZone.FactionMinute,Tariff.SequenceNo,tariffdate.weekId, Tariff.Time,Tariff.IsFaction,Tariff.Amount
FROM
TariffDate
INNER JOIN TariffZone ON TariffDate.TariffZoneID = TariffZone.TariffZoneID
INNER JOIN Tariff ON TariffZone.TariffZoneID = Tariff.TariffZoneID
WHERE TariffDate.TariffDateID >= (
SELECT ISNULL(MAX(tariffdateid), 0)
FROM TariffDate
where datefrom <= cast('2014-09-25 00:00:00.000' as date)
and timeFrom<=cast('05:00:00.0000000' as time) and FacilityID =2 and WeekID= datepart(dw,CAST('2014-09-25 00:00:00.000' AS DATE))
)
AND
TariffDate.TariffDateID <=
(
SELECT ISNULL(MIN(tariffdateid) , 0)
FROM TariffDate
WHERE dateto <= CAST('2014-09-25 00:00:00.000' AS DATE)
and timeTo <=CAST('07:00:00.0000000' AS TIME)
and FacilityID =2 and WeekID= datepart(dw,CAST('2014-09-25 00:00:00.000' AS DATE)))
and Tariff.FacilityID =2
【问题讨论】:
-
你真正想要什么结果?请使用此信息更新问题。
-
我想获取todate和fromdate、totime和fromtime之间的记录
-
不清楚...请显示预期的结果集。
-
第一眼:您的表格分别保存日期和时间。这表明我们不是在谈论从 2014-09-01 03:00 到 2014-09-30 08:00 的时间跨度,而是从 2014-09-01 到 2014-09-30 每天 03:00 的时间跨度到 08:00。 (否则 dba 会选择日期时间。)
标签: sql sql-server sql-server-2008 tsql