比较mySQL中不同年份的日期
执行此查询时,我得到一个奇怪的返回:比较mySQL中不同年份的日期,mysql,date,comparison,Mysql,Date,Comparison,执行此查询时,我得到一个奇怪的返回: SELECT * FROM rrp WHERE end > "2012-12-31" 没有返回任何内容,尽管此表中有一行“end”列大于“2012-12-31”: rrp 编辑:start和end是date字段 编辑:我的测试使用了错误的数据库=>错误的结果 问题来自Zend_Date,在将日期添加到日期时: $start=“2012-12-31”; $nStart=新的Zend_日期($start,“YYYY-MM-dd”); $end=新的Zen
SELECT * FROM rrp
WHERE end > "2012-12-31"
没有返回任何内容,尽管此表中有一行“end”列大于“2012-12-31”
:
rrp
编辑:start
和end
是date
字段
编辑:我的测试使用了错误的数据库=>错误的结果
问题来自Zend_Date,在将日期添加到日期时:
$start=“2012-12-31”;
$nStart=新的Zend_日期($start,“YYYY-MM-dd”);
$end=新的Zend_日期($nStart);
$end->addDay(1)
当我回显$end时:echo$end->get(“YYYY-MM-dd”)代码>
它输出的2013-12-31
很可能是日期格式的问题
这应该会有所帮助
最有可能的问题是日期的格式
这应该会有所帮助
如果end
是一个日期列,则它应按预期工作:
SELECT
STR_TO_DATE('2013-01-01', '%Y-%m-%d') < "2012-12-31",
STR_TO_DATE('2012-05-05', '%Y-%m-%d') < "2012-12-31"
在这种情况下,每次都需要指定一种格式:
SELECT *
FROM rrp
WHERE end > STR_TO_DATE('2012-12-31', '%Y-%m-%d')
如果end
是一个日期列,则它应按预期工作:
SELECT
STR_TO_DATE('2013-01-01', '%Y-%m-%d') < "2012-12-31",
STR_TO_DATE('2012-05-05', '%Y-%m-%d') < "2012-12-31"
在这种情况下,每次都需要指定一种格式:
SELECT *
FROM rrp
WHERE end > STR_TO_DATE('2012-12-31', '%Y-%m-%d')
“结束”实际上是一个日期字段吗?我知道MySQL有时在转换数据时会做一些奇怪的事情。是的,很抱歉不精确。有件事你没有告诉我们-因为你在问题中写的所有东西都应该可以工作-设置与你的问题相同(只使用结束列)。我真的很抱歉,脚本似乎没有连接到正确的数据库。@jerecthesis在原始问题中添加了一个日期字段,plzIs“end”实际上是一个日期字段吗?我知道MySQL有时在转换数据时会做一些奇怪的事情。是的,很抱歉不精确。有件事你没有告诉我们-因为你在问题中写的所有东西都应该可以工作-设置与你的问题相同(只使用结束列)。我真的很抱歉,似乎脚本没有连接到正确的数据库。@jerecthesis将此添加到原始问题plzAs“2012-12-31”
和2013-01-01
的格式相同,2013-01-01
被配置为日期字段。我不理解这种输出。当使用日期字段时,有时会在末尾加上零,由系统分配,但不显示,这在某些情况下会导致操作员最多休息一天,示例:“20041003 23:00:00”大于“20041003”,因为“20041003”等同于“20041003 00:00:00”。如“2012-12-31”
和2013-01-01
的格式相同,2013-01-01
被配置为日期字段。我不理解这种输出。当使用日期字段时,有时会在末尾加上零,由系统分配,但不显示,这在某些情况下会导致操作员最多休息一天,示例:“20041003 23:00:00”大于“20041003”,因为“20041003”等同于“20041003 00:00:00”。