SET @time := '2018-11-08 00:36:50.000000';
SET @intervalInMinutes := 15
SELECT FROM_UNIXTIME((Select FLOOR ((select UNIX_TIMESTAMP(@time) / (@intervalInMinutes* 60))) * (@intervalInMinutes*60)));
我需要在MySQL中编写一个查询,该查询将日期/时间转换为用户指定的最近间隔类别。 例子:
例如1:'2018-10-24 17:45:50.000000'
例如2:'2018-10-24 17:36:20.000000';
我已经编写了上面的查询,看起来不错。但是,转到this post时,第一个答案有一条注释,指出该方法将使介于夏时制之间的日期时间失败。我没有他指定的例子。对于我的情况,我在该线程上注意到的其他方法看起来更加复杂。我试图了解这将如何影响我的情况。感谢任何建议/示例。或者,有没有更好的方法通过编写更简单的查询来避免这种情况? 附言我希望这适用于MySQL 5.6、5.7和8.0。
答案 0 :(得分:0)
在将日期时间转换为unixtime并返回时,您可能会遇到的问题explained in MySQL database非常好。
为了安全起见,我将使用另一种方法:
for x in range(100,1000):
#Get the digits from the number generated as a, b, c
a = x//100
b = (x%100)//10
c = x%10
#now check whether the number is armstrong number or not
#here, a**3 + b**3 + c**3 == abc
if((a**3) + (b**3) + (c**3) == x):
print("Armstrong Number {}".format(x))
这个想法非常相似:您将时间转换为秒,四舍五入并转换回来。