gpt4 book ai didi

mysql - mysql中根据时间的值进行计算

转载 作者:行者123 更新时间:2023-11-30 22:59:05 24 4
gpt4 key购买 nike

我正在尝试根据时间值计算列,但我不确定应该使用 If 条件还是 Case 哪个更好?

这是我的专栏

| Time_In               |   Time_Out            |   Val1    |   Val2    |
| 2014-07-19 04:00:04 | 2014-07-19 08:00:00 | 5 | 15 |

我想做的是,如果时间如果时间在“08:00:00”到“17:00:00”(营业时间)之间,它会自动乘以 Val1 和 Val2

如果时间是'18:00:00'到'23:00:00'(下类后)

我现在唯一能做的就是获取时间戳中的时间,因为这就是我要比较的内容

`SELECT date_format(STR_TO_DATE(Time_In, '%Y-%m-%d %H:%i:%s'), '%H:%i:%s') 
Output: 04:00:04

`SELECT date_format(STR_TO_DATE(Time_Out, '%Y-%m-%d %H:%i:%s'), '%H:%i:%s')
Output: 08:00:00

我应该如何构造它?

谢谢你的帮助


我首先使用 if 条件进行了尝试,这是有效的:)

SELECT 

IF(`Time_In` >= CAST('13:00:01' AS time) AND `Time_Out` <= CAST('15:00:00' AS time),(Val11 * Val2),'false')


FROM table WHERE ID = '5'

得到输出75 :D

最佳答案

正如您假设的那样,您可以使用 CASE 构造来做到这一点。

  • 使用 STR_TO_DATE 将字符串转换为 DATETIME 值
  • TIME提取TIME部分功能

所以你可以这样做,这里有示例值

'2014-07-19 12:00:00'
'2014-07-19 18:00:00'

使用此语句(当然您只需要一个 CASE 结构):

SELECT
CASE
WHEN Time(STR_TO_DATE('2014-07-19 12:00:00', '%Y-%m-%d %H:%i:%s')) BETWEEN '04:00:00' AND '17:00:00'
THEN Val1 * Val2
ELSE NULL
END result,

CASE
WHEN Time(STR_TO_DATE('2014-07-19 18:00:00', '%Y-%m-%d %H:%i:%s')) BETWEEN '04:00:00' AND '17:00:00'
THEN Val1 * Val2
ELSE NULL
END result2

FROM
example;

DEMO

关于mysql - mysql中根据时间的值进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24852627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com