sql server

日期加减

# 截取第3个开始长度为5的字符, 即'yy/mm'
substring(
  # 存储数据,格式为'yyyy/mm/dd'
  convert(
    nvarchar(20), 
    # 减7小时
    dateadd(
      hour, -7, 
      # 减45分钟
      dateadd(minute, -45, finishtime)
    )
    , 111
  ), 3, 5
)

截取substring(expression, 开始位置, 长度)

expression
为 character、binary、text、ntext 或者 image 表达式

start
指定返回字符的起始位置的整数或 bigint 表达式 。 (编号从 1 开始,意味着表达式中的第一个字符为 1)。 如果 start 小于 1,则返回的表达式的起始位置为表达式中指定的第一个字符 。 在这种情况下,返回的字符数是后两者中的较大值:start + length 之和减去 1,0。 如果 start 大于值表达式中的字符数,将返回一个零长度的表达式 。

length
是正整数或用于指定要返回的 expression 的字符数的 bigint 表达式 。 如果 length 是负数,会生成错误并终止语句 。 如果 start 和 length 的总和大于表达式中的字符数,则会返回从 start 开始的整个值表达式 。