【发布时间】:2014-06-04 17:09:19
【问题描述】:
使用这种日期格式:mm/dd/yyyy h:m AM/PM(例如:06/05/2014 5:00 PM),如何忽略实际日期并获取特定时间之间的数据计数? (例如下午 5 点至晚上 9 点)
我尝试过这样的事情,但当然它不起作用,我不确定 SQL 是否可以做到这一点:
SELECT COUNT(id) FROM mobile_statistics WHERE timestamp BETWEEN '5:00 PM' AND '9:00 PM';
注意:时间戳字段的类型为nvarchar(MAX)
【问题讨论】:
-
不相关,但我强烈建议将您的数据类型从
NVARCHAR(MAX)更改为DATETIME2(或只是 DATETIME)。它可能导致各种转换错误,需要更多存储空间,并且需要在查询中进行更多工作才能进行隐式和显式转换。进一步阅读 - Bad habits to kick : choosing the wrong data type -
@GarethD 是的,不幸的是我无法控制数据类型。不过我确实知道得更多,谢谢。
标签: sql sql-server-2008 date