我试图从包含时间格式为DateTime的列中提取数字小时值。例如,这里有从该列几个记录:使用DATEPART函数从datetime列中提取小时值
Time Aired
4:20:00 PM
12:51:00 PM
3:17:00 PM
3:24:00 PM
从这个专栏中,我正在试图提取4,12,3,3等。DATEPART功能似乎是一个很好的选择。但是,当我尝试使用如下所示的函数时,系统会提示输入Hour的参数。这导致我相信我错误地实施了DATEPART。有人可以发现问题可能是什么?问题可能是我的日期时间格式化列只包含时间值?
SELECT DATEPART(hour, [Time Aired]) AS Foo
FROM DRTV_CentralOnly
WHERE [Time Aired] <> null;
谢谢。我不知道我是如何忽略文档中的引号的。关于WHERE语句,两个版本都有效。我不知道是否更好。 – hughesdan 2012-03-14 19:36:47
是的,如果我使用<> null – hughesdan 2012-03-14 19:40:18
,我会得到相同的查询结果这已经过去了几年,所以希望您现在使用“is not null”而不是“<> null”。参考:[如何获得空可怕错误](https://www.simple-talk.com/sql/t-sql-programming/how-to-get-nulls-horribly-wrong-in-sql-server/) – RobertB 2016-06-21 21:49:05