T-SQL日期时间舍入到最接近的10分钟值

时间:2018-08-07 18:02:08

标签: sql sql-server datetime

是否可以使用SQL函数将此DateTime舍入为最接近的10分钟值?

例如:

input: '09-22-2007 15:04:36.850'
output: '09-22-2007 15:00:00.000'

input: '09-22-2007 15:14:36.850'
output: '09-22-2007 15:10:00.000'
..
input: '09-22-2007 15:54:36.850'
output: '09-22-2007 15:50:00.000'

秒和毫微秒不一定要为'00 .000'(但这会很棒:))

2 个答案:

答案 0 :(得分:0)

如果这是字符串,则可以执行以下操作:

select left(val, 15) + '0:00:00.000')

对于日期/时间数据类型,您可以执行以下操作:

select dateadd(minute, 10 * (datediff(minute, 0, val) / 10), 0)

0是此表达式中的任意开始时间。

答案 1 :(得分:0)

import os
import shutil
import datetime

month = datetime.date.today().replace(day=1)
oneMonthBefore= (month - datetime.timedelta(days=1)).replace(day=1)
twoMonthBefore= (oneMonthBefore - datetime.timedelta(days=1)).replace(day=1)

root = 'C:\\Users\\Admin\\Desktop\\Directorys'

for path, dirs, files in os.walk(root):
    for dir in dirs[:]:
        try:
            dirDate = datetime.datetime.strptime(dir, '%Y%m')
        except ValueError:
            continue
        if dirDate < twoMonthBefore:
            dirs.remove(dir)
            shutil.rmtree(os.path.join(path, dir))

输出:“ 9/22/2007 15:00:36.850”