mysql - SQL 按截止日期列获取行

标签 mysql datetime

假设我有一个产品表,如下所示:

| prod_id  | prod_name   | prod_price | prod_deadline      |
|   1      | prod_A 1    | 30.00      | 2015-05-13 04:00:00|
|   2      | prod_A 2    | 40.00      | 2015-06-12 04:00:00|
|   3      | prod_A 3    | 50.00      | 2015-07-21 04:00:00|

这个想法是,我的产品 A 有三个不同的截止日期,5 月 13 日之后的价格为 30 美元,6 月 12 日之后的价格为 40 美元,7 月 21 日之后的价格为 50 美元。由于各种业务原因,列结构已设置且无法更改。

如果今天是 2015-06-11 16:00:00 什么是 MySQL 查询,可以让我支付正确的价格,而不需要在 php 或任何语言的结果中循环?

最佳答案

您可以使用 order bywherelimit 进行此计算。我想它会像这样工作:

select p.*
from products p
where prod_name = 'prod A' and prod_deadline <= now()
order by prod_deadline desc
limit 1

您可能需要 like 而不是 = 作为产品名称。

关于mysql - SQL 按截止日期列获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30789941/

相关文章:

Perl:毫秒到日期+时间

python - 如何使用 dataframe between_time() 函数

MongoDB聚合: convert date to another timezone

php - 尝试显示两个表中的数据

mysql - 在 select 中使用存储过程

多种欧洲语言的MySQL字符集+数学符号

mysql - 数组到字符串转换 C :\xampp\htdocs\8990API\register. php

php - Laravel 5.3 中的 SQL 搜索查询错误

ruby-on-rails - rails : How to store date in "Chennai" Timezone in the database

c++ - 我如何让这个函数返回一个日期时间字符串