1

我们有一个存储过程,IN 参数是今天的 DATE。在此过程中,aql 将此今天的值与具有时间戳列的表进行比较。例如:

column A
2012-12-01 00:00:00

SQL:

select * from t where A = today.

我们在 phpmyadmin 中运行这个程序,它运行正常。但它不适用于命令行。

为什么?

4

2 回答 2

4

猜猜您可能需要将两个日期格式化为通用格式。为了安全起见,您甚至可以添加Date()str_to_Date如果需要...如果您不确定列是否A包含正确的日期...

请试试这个:

SELECT * FROM tablename
WHERE DATE_FORMAT(A, '%d/%m/%Y') = DATE_FORMAT(TODAY, '%d/%m/%Y');

如果你的意思是CURDATE()today那时也试试这个,

SELECT * FROM tablename
WHERE DATE_FORMAT(A, '%d/%m/%Y') = DATE_FORMAT(CURDATE(), '%d/%m/%Y');
于 2013-01-06T14:05:12.133 回答
1

日期可能采用不同的格式,导致它们不相等。您可以使用它datediff(date1, date2) = 0来解决此问题。

http://www.w3schools.com/sql/func_datediff_mysql.asp

于 2013-01-07T05:08:50.707 回答