如何在mysql中选择一段时间?

问题描述:

我想在一段时间内做出MySql选择。但我没有弄清楚如何正确设置它。如何在mysql中选择一段时间?

这就是我试图

SELECT * FROM rapoarte WHERE DATE(ziua) BETWEEN 2010-01-12 AND 2011-01-14

能否请你帮忙吗?

感谢, 塞巴斯蒂安

+0

字段ziua的类型是什么? – 2010-11-08 08:11:04

+0

ziua字段的类型是Date。但它的工作正常与报价 – sebastian 2010-11-08 10:28:34

SELECT * FROM rapoarte WHERE DATE(ziua) BETWEEN "2010-01-12" AND "2011-01-14" 
+1

感谢您的帮助。完美解决。 :) – sebastian 2010-11-08 08:12:05

如果性能是一个问题,我会避免以这种方式使用DATE因为它会阻止指数的有效使用,将导致全扫描。对于小桌子来说,这可能不成问题,但是如果桌子很大,您可能会发现这会带来更好的效果:

SELECT * 
FROM rapoarte 
WHERE ziua >= '2010-01-12' 
AND ziua < '2010-01-15' 
+0

+1这是更好的方法,但是第一个>必须是> =。另外,我不认为“00:00:00”是必要的。 – AndreKR 2010-11-08 08:16:47

+0

@AndreKR:是的,你是对的> =。现在修好,谢谢。 – 2010-11-08 08:17:59

+0

@MarkByers我没有得到性能部分。如何使用日期影响性能?参考:http://*.com/questions/4382892/whats-mysqls-between-performance-over – 2016-09-16 13:03:49