SQL SERVER 2008的时间差
我有一列名LOGDATE其中有日期的格式如下SQL SERVER 2008的时间差
2011-01-04 23:35:44.000
我想在6月1日之间进行选择的其他列2011至2011年6月30日,以便查询应该是
select * from abc where logdate = ?
您可以使用>=
和<
:
SELECT *
FROM abc
WHERE logdate >= '20110601' AND logdate < '20110701'
假设LogDate
是DateTime
列,您可以使用下面的查询,以获得全方位的月份:
WHERE logdate >= '2011-06-01' AND logdate < '2011-07-01'
有很多方法来操纵SQL日期时间和字符串代表SQL日期时间:
http://msdn.microsoft.com/en-us/library/ms186724(v=sql.105).aspx
一个非常简单的方式做,这是使用> = <运营商。
SELECT *
FROM abc
WHERE logdate >= '20110601'
AND logdate < '20110701'
要使用< 7月1日,而不是< = 6月30日的原因是字符串解析的日期假定它是在该日的午夜,这将在以后排除任何价值超过6月30日上午12点
只需注意YYYY-MM-DD格式 - 这可能会因设置而中断(例如,尝试“SET LANGUAGE FRENCH”)。使用YYYYMMDD更安全。 – 2012-07-06 17:31:50
这是一个非常好的点亚伦。 – Erica 2012-07-06 18:04:50
谢谢,我如何将这些记录导出到CSV,它可以自动完成? – user580950 2012-07-06 17:24:32
@ user580950,导出为CSV,在管理工作室中右键单击结果窗格>将结果另存为... – Somantra 2012-07-06 17:26:03
感谢您的帮助 – user580950 2012-07-06 17:27:17