Sql 查询从两天前凌晨1:01到昨天凌晨1:00的所有记录

Sql 查询从两天前凌晨1:01到昨天凌晨1:00的所有记录,sql,sql-server,Sql,Sql Server,我目前正在尝试将查询作为SSIS包的一部分编写,部分要求是该查询将返回所有带有时间戳(当前为yyyy-mm-dd hh:mm:ss:mmm格式)的行,时间戳从2天前的1:01 AM到1天前的1:AM。我可以为日期写这篇文章,但我被困在如何将时间范围结合起来。当前查询: SELECT * FROM (SELECT dateadd(S, logintime, '1970-01-01') as "conversion" ,DATEPART(hh, dateadd(HOUR, logintime, '1

我目前正在尝试将查询作为SSIS包的一部分编写,部分要求是该查询将返回所有带有时间戳(当前为yyyy-mm-dd hh:mm:ss:mmm格式)的行,时间戳从2天前的1:01 AM到1天前的1:AM。我可以为日期写这篇文章,但我被困在如何将时间范围结合起来。当前查询:

SELECT *
FROM
(SELECT dateadd(S, logintime, '1970-01-01') as "conversion"
,DATEPART(hh, dateadd(HOUR, logintime, '1970-01-01')) as "HourCol"
,DATEPART(hh, dateadd(MINUTE, logintime, '1970-01-01')) as "MinuteCol"
, * FROM my.logtable
WHERE row_date between dateadd(day, -3, getdate()) and DATEADD(day, -1, GETDATE())) as subselect
where conversion between --and from here I'm lost.
order by conversion
最后两个给你你想要的范围。只要你和另一个日期比较,时间应该是有效的


让我们看看你想得到的日期是什么?然后我们会帮你包括时间。请阅读,这里是学习如何提高问题质量和获得更好答案的好地方。请使用您正在使用的数据库(可能是SQL Server)标记您的问题。并澄清所讨论的列是(正确地)存储为日期/时间还是(错误地)存储为字符串。由于我忘记在当前查询中粘贴,因此进行了编辑。logintime列是一个int,unix时间戳,从1970年1月1日开始。我制作转换别名只是为了让它更具可读性和易用性。我相信转换会产生约会时间?不确定。这正是我使用转换列进行比较时所需要的。非常感谢。
SELECT getdate() today,
       CAST(getdate() as DATE) today_0000,       
       DATEADD(day, -1, CAST(getdate() as DATE)) yesterday0000,
       DATEADD(day, -2, CAST(getdate() as DATE)) daybeforyesterday0000,
       DATEADD(mi, 60, CAST(DATEADD(day, -1, CAST(getdate() as DATE)) as datetime)) yesterday0100,
       DATEADD(mi, 61, CAST(DATEADD(day, -2, CAST(getdate() as DATE)) as datetime)) daybeforyesterday0101