仅在>时插入日期和时间=当前日期

时间:2016-04-04 13:24:37

标签: mysql sql date getdate sql-date-functions

我有一个字段appointment_timedate,数据类型分别为timeappointment。表名为current_date。我们的老师想要的是,只有在大于或等于current_timegetdate()的情况下才能添加约会。我对sysdate()dateadd()var Helper = require('path_to_the_module_where_the_method_check_is_defined_and_exported'); function verifyOTP(user) { var position = user.position; var operation = user.operation; var useripp = user.userip; Helper.check(position, operation, useripp); }; var query = { // Your query here }; var projection = { position: 1, operation: 1, userip: 1, _id: 0 }; User.findOne( query, projection, function(err, user) { if(err) console.log("Error: " + JSON.stringify(err)); if(user) verifyOTP(user); }); 或任何DATE函数的工作原理感到困惑。希望你能帮助我。感谢。

2 个答案:

答案 0 :(得分:0)

如果您因时间/日期功能迷失方向,网上有很多关于MySQL的文档,请在此处查看:Date and time functions

鉴于MySQL没有条件INSERT语句,我建议在没有条件检查的情况下进行简单插入之前对要插入的值进行各种检查。

答案 1 :(得分:0)

在sql中你可以使用check constraint强制执行这样的逻辑,遗憾的是,mysql还没有实现这种类型的约束。这意味着,您必须在调用insert语句之前检查应用程序本身的条件,或者必须创建a stored procedure才能达到预期的结果。

在这两个解决方案中,逻辑很简单:使用if条件语句检查您要插入的值是否大于当前日期或时间(实际上将它与之进行比较非常重要)。

第三种解决方案是创建一个before insert触发器并使用signal从中引出sql错误消息,以防止插入记录。