簡體   English   中英

MYSql存儲過程,DateTime值不起作用

[英]MYSql Stored Procedure, DateTime value not working

DELIMITER // 
CREATE PROCEDURE GetWinners(IN Number INTEGER , IN Table_Name VarChar(7)) 
BEGIN 
 SET @t1 = CONCAT('Select * FROM ', Table_Name, ' Where number = ', Number, ' && active = true && dateAndTime < 2015-02-10');
 PREPARE stmt3 FROM @t1;
 EXECUTE stmt3;
 DEALLOCATE PREPARE stmt3;
END // 
DELIMITER ;

dateAndTime是我存儲DateTime值的列。 我不明白為什么&& dateAndTime < 2015-02-10' ,查詢沒有返回結果。

如果我刪除&& dateAndTime < 2015-02-10' ,則會返回一些結果。 即使我在列中的DateTime值小於2015-02-10,也會發生這種情況。

這很可能是由於您的日期格式,將時間添加到了日期,但是由於您在mysql中的首選項,它僅顯示了沒有時間的日期。 使用trimtrunc刪除時間。

TRUNC(dateAndTime) < TO_DATE('2015-02-10', 'YYYY-MM-DD')

用單引號括住您的DateTime

SET @t1 = CONCAT('Select * FROM ', Table_Name, ' Where number = ', Number, ' && active = true && dateAndTime < '2015-02-10'');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM