zoukankan      html  css  js  c++  java
  • SQL 存储过程语句拼接愁人的时间类型

      背景介绍:有一个小需求 要根据传入的起止时间,没一个小时统计一下数据的平均值,我就想到了用存储过程来实现。

      sql写完之后一执行,

      
      咦~怎么回事 ,我没有转换类型的地方啊,难道是 语句拼接出错了。

      下面是定义的两个时间变量 格式都是DateTime格式的,

      

      

      问题就出在了时间类型的语句拼接上,想了两个解决方案,

      拼接的时候把时间改为varchar类型的,或者直接把原来的时间类型定义为varchar类型的。

      类型转换用CAST() 函数
      

      改完之后 一执行

      

      数据有了,但是有点不对啊,我自己加的测试数据是一个小时一条数据啊,怎么会有一行 是 0 呢。
      仔细查看后 发现查询是的时间有问题。(这难道是sql 默认的时间格式吗)

      

      存储过程中用于查询的两个时间数据的格式 只是精确到分钟,而我自己添加的测试数据 中有连续的几个小时的数据都是 59分 多少多少秒,就导致进行运算的时候
      把本该数据这一小时内的数据 计算到了上一个小时中去(很庆幸自己添加的数据帮自己找到了一个隐藏的隐患啊)。

      解决方法:

      Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250

      修改一下时间格式。

  • 相关阅读:
    C++ String详解
    乏力的编码很累,这里有私货..
    给自己~~微语&&歌单
    2019CSP-J第二轮 B题C题
    HDU 3966 树链剖分+树状数组 模板
    HDU 2255 KM算法 二分图最大权值匹配
    HDU 4280 ISAP+BFS 最大流 模板
    HDU 6181 第k短路
    假装会python--爬取贴吧正文
    HDU 6170 dp
  • 原文地址:https://www.cnblogs.com/yrup/p/4201329.html
Copyright © 2011-2022 走看看