mysql的sql语句where,mysql – SQL语句中where子句的IF语句

我正在开发一个日历应用程序.它以两种格式存储时间.该表具有以下列标题,startDate,startTime.如果用户提供开始时间加上开始日期.数据库在startTime列中存储UNIX时间戳(自UNIX epok以来的秒数),而startDate为NULL.如果用户仅提供开始日期,则数据库将在startDate中以nnnn-mm-dd格式存储日期,在’startTime`中存储NULL.我有这种数据库结构,因为它更容易在世界各地显示时间,因为不同的时区有不同的夏令时.

我想选择在指定日期之后发生的事件.客户端计算机为服务器提供当天开始的UNIX时间戳($unix)和格式为nnnn-mm-dd的日期($date)以选择正确的日期.

问题是,我不知道如何选择上面指定的那些日子.此解决方案不适用于我,即使它有效:

SELECT *

FROM events

WHERE startDate >= '$date'

OR startTime >= '$unix'

事情是我在某些行中在startTime中提供了unix时间戳,我也有一个在startDate中提供的日期以及我不想解释的其他原因.因此,我不能使用上面的解决方案.

我需要某种在Where子句中包含IF语句的解决方案,如:

SELECT *

FROM events

WHERE IF(startTime = NULL, startDate >= '$date', startTime >= '$unix')

我只是猜测这个解决方案.但这是对的吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值