在 T-SQL 中将分钟格式化为小时,将分钟格式化为十进制数

2023-12-19

有没有一种干净而简单的方法将整数格式化为小时和分钟的十进制表示形式。非常遗憾的是,T-SQL 中没有 Timespan 这样的东西来支持这一点。

需要明确的是,如果我有 70 分钟,我想将其转换为 1 小时 10 分钟,即1.10。我还想将其保留为 varchar 或其他形式,以确保尾随零保持在适当的位置。

无论如何,是否可以将其创建为 SQL 中的自定义函数,以便可以从不同的查询中重新使用它?


要获得小时数,您需要除以 60。要获得剩余分钟数,您需要将总分钟数 mod 60 或总分钟数与小时数之差乘以 60。为了使余数显示在小数位,除以 100.0:

SELECT minutes / 60 + (minutes % 60) / 100.0 ...

请注意,您将丢失尾随零,恕我直言,以这种方式存储持续时间是一个坏主意,因为a)您不能用它做更多的数学运算,b)当有人稍后查看此代码时会感到困惑。

您最好使用如下所示的字符串表示形式(我建议再次使用“:”而不是“.”,以表示这不是一个数字):

SELECT CAST((minutes / 60) AS VARCHAR(8)) + ':' + 
       RIGHT('0' + CAST((minutes % 60) AS VARCHAR(2)), 2) ...

至于创建自定义函数,您可以创建一个存储过程,然后从其他代码中调用它。请注意,必须在每个数据库中创建存储过程。

不确定创建存储过程是否值得付出努力,除非您想要更花哨并返回类似 TimeSpan 的行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 T-SQL 中将分钟格式化为小时,将分钟格式化为十进制数 的相关文章

  • TSQL 多列唯一约束也允许多个 Null

    我目前正在做一些从 MS Access 到 SQL Server 的迁移 Access 允许唯一索引中存在多个 Null 而 SQL Server 不允许 我一直在通过删除 SQL Server 中的索引并添加筛选索引来处理迁移 CREAT
  • 我应该设计一个 SQL Server 数据库来依赖 UNION 还是避免它?

    执行以下 SQL 查询 SELECT Account Amount AS Deposit 0 00 AS Withdrawal Date FROM Deposits WHERE Account Account UNION SELECT Ac
  • 如何找到一组值的精确匹配?

    我有一个简单的表来存储师生关系 以显示学生正在上谁的课或老师正在教谁 无论哪种方式 为便于阅读 按老师排序 CREATE TABLE TS RELATIONSHIP Teacher NVARCHAR 10 Student NVARCHAR
  • 在SQL Server中,not(columnName='value')和columnName<>'value'之间有什么区别吗?

    在 SQL Server 的 where 子句中 无论您编写代码有什么区别not columnName value or columnName lt gt value 我正在考虑性能方面的问题 有人告诉我 当使用 Not 时 它可能不会使用
  • 基于现有数据库表创建@TableVariable?

    我想在存储过程中使用表变量 但这是一个问题 我的表非常大 声明表变量也需要很长的代码来编写和调试 请告诉我一些快速声明表变量的方法 是否可以基于现有表创建表变量 或者请分享任何创建用于创建表变量的代码的提示 Thanks 右键单击表格 选择
  • 将一行字段设置为其他 2 个字段的乘积

    我有一个这样的SQL表结构 Id A B C D 1 1 5 6 25 2 2 10 5 25 3 3 7 4 25 4 1 6 5 26 5 2 10 5 26 6 3 8 3 26 我想写一个脚本 它将更新所有B 和 C 列在行中A 3
  • 替换 Select 语句中的 NULL 和空字符串

    我有一个专栏可以有NULL或空白区域 即 值 我想用有效值替换这两个值 例如 UNKNOWN 我发现的各种解决方案建议修改表本身内的值 然而 在这种情况下 这不是一个选项 因为数据库用于开发和 或修补得非常差的第三方应用程序 实际上 我认为
  • SQL Proc 从 varchar 到 int 的“转换失败”。为什么要转换?

    我的问题是 为什么它从 varchar 转换为 int 我不确定它想做什么 CREATE PROCEDURE myTestProcedure TransId VARCHAR 15 AS BEGIN DECLARE Result VARCHA
  • 如何返回以列名作为第一行的 T-SQL 查询

    我正在编写一个 SSIS 包来将数据从 SQL Server 2012 数据库输出到 CSV为客户归档 要求是第一行是列名称 下面是我为数据流任务中的源编写的查询 问题是 它总是将列名返回为最后一行 而不是第一行 为什么 我该如何实现这一目
  • BCP 语法问题

    总之 我正在尝试编写一个可以每天从 SQL Server 2008 实例上的批处理文件运行的查询 我以前从未使用过 BCP 但在查看了一些在线示例后 我尝试创建一个真正的基本查询来测试计算机上的进程和权限 然后再将选择查询扩展到所需的数据集
  • SQL,帮助进行有关用户年龄的小查询

    我有一个包含注册用户的表 其中我将年份保存为 varchar 值 只是因为我只花了一年 我想创建包含年龄的饼图 以显示哪些用户更有可能注册 下面的查询给出了表中出现超过 5 次的用户年龄计数 以避免结果过小 虽然这些小结果低于 having
  • SQL Server 中的嵌套事务

    sql server 允许嵌套事务吗 如果是的话那么交易的优先级是什么 来自 SQL Server 上的 MSDN 文档 嵌套交易 http msdn microsoft com en us library ms189336 SQL 90
  • 合并sql中的列

    我正在使用 SQL Server 2017 有一个存储过程 其中我有一个带有连接的简单选择 例如 SELECT p legacyKey AS JobNumber p Name AS JobName G Label AS DesignStat
  • 如何为SQL Server 2005实例中的所有数据库创建DDL触发器

    我将为 SQL Server 实例中的所有数据库创建一个 DDL 触发器 我想在一次运行中完成此操作 而不是为每个数据库运行多次 下面是我需要执行的两个 T SQL 语句 Create table use
  • 在 C# 中执行基于存储过程的查询后,如何重新使用 CommandText 的 SqlCommand 对象?

    我有一个示例代码 aCommand CommandType CommandType StoredProcedure aCommand Parameters AddWithValue book id bookID aCommand Param
  • 如何拥有引用另一个表的检查约束?

    我在 SQL Server 2008 数据库中有以下表 tblItem 其中有一个ItemID field 好项目 它还有一个 ItemID 字段 并且有一个指向 tblItem 的外键 tblBadItem 它也有一个 ItemID 字段
  • 如何使用一个命令删除 SQL 数据库中的所有索引?

    那么 如何通过一条命令删除 SQL 数据库中的所有索引呢 我有这个命令可以获取所有 20 个左右的 drop 语句 但是如何从这个 结果集 运行所有这些 drop 语句呢 select from vw drop idnex 给我相同列表的另
  • 需要在 SQL Server 中透视字符串值

    我有一个包含值的表 描述为 Occupation String Name String Developer A Developer B Designer X Coder Y Coder Z 我需要数据透视格式的值 Designer Deve
  • 如何使用 SQL 查询创建逗号分隔的列表?

    我有 3 个表 名为 应用程序 ID 名称 资源 id 名称 应用程序资源 id app id resource id 我想在 GUI 上显示所有资源名称的表格 在每一行的一个单元格中 我想列出该资源的所有应用程序 以逗号分隔 所以问题是
  • 替换字符串中的多个字符,而不使用任何嵌套替换函数

    我的表中存储了一个方程 我一次获取一个方程 并希望将所有运算符替换为任何其他字符 输入字符串 N 100 6858 6858 N 100 0 2 N 35 运算符或模式 替换字符 输出字符串 N 100 6858 6858 N 100 0

随机推荐

  • 当标题拆分为两行时修复plotly ggplotly() 标题重叠图

    在下面的示例中 标题的第二行与情节略有重叠 有没有办法通过增加标题和情节之间的间距来解决这个问题 library ggplot2 library plotly library magrittr p1 lt ggplot iris aes x
  • 如何使用 $.ajax(jQuery 或 Zepto)发布对象数组

    我想在 Zepto 或 Jquery 中使用 ajax 发布一组对象 两者都表现出相同的奇怪错误 但我找不到我做错了什么 当使用像 RestEasy 这样的测试客户端发送数据时 数据会保存到服务器 并且我可以看到请求在浏览器的网络面板中被破
  • 使用 Tor 运行 Puppeteer

    我安装了 Tor Expert Bundle 并且想使用 Puppeteer 运行它 I try const browser await puppeteer launch headless false args proxy server s
  • 更新后 Fabric 崩溃:[Fabric isCrashlyticsCollectionEnabled]:无法识别的选择器发送到类 0x10c0bb918

    今天 pod 更新后 Fabric 崩溃了 面料1 9 0 Fabric isCrashlyticsCollectionEnabled unrecognized selector sent to class 0x10c0bb918 崩溃线
  • Linux系统调用

    我能够获得系统调用的执行及其在内核中的处理 但我还不清楚一些事情 进入 swi 例程后 内核保存 用户模式寄存器在堆栈上 问题是 是谁的堆栈 因为 swi 处理和相应的系统调用例程需要堆栈帧来工作 如果是内核自己的堆栈 那么从哪里分配堆栈
  • 为什么数据流步骤无法启动?

    我有一个线性三步数据流管道 由于某种原因 最后一步开始 但前面的两个步骤挂起Not started在我放弃并终止这份工作之前很长一段时间 我不确定是什么导致了这个问题 因为同样的管道过去曾成功运行过 而且我很惊讶它没有在日志中显示任何阻止前
  • 更改成员资格连接字符串

    我是 ASP NET 成员资格新手 我需要帮助以编程方式更改其连接字符串 到目前为止我尝试过的是 我创建了一个类项目名称 Sample 作为命名空间 并扩展了System Web Security SqlMembershipProvider
  • C++中接口类和实现类的并行继承

    我正在尝试以与 Java 接口类似的方式使用 C 抽象基类 假设我们有以下仅具有纯虚函数的接口类 class Shape virtual double area 0 class Square public Shape virtual voi
  • 最简单的反向代理[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在寻找一种方法来简单地在本地设置连接到远程站点的代理 我不想在系统中正确安装任何东西 如果我可以使用单个命令行调用来调用它 而不是使用单个配置文件
  • 选择一个数据框中与另一数据框中部分匹配的行

    我希望在一个数据框中选择行 data 1 部分匹配第二个数据帧中的行 keep these 得到desired result 我在这里发现了几个基于一列匹配的问题 但我想在三列上匹配 STATE COUNTY and CITY 到目前为止
  • 在 Eclipse-Java EE 上,如何更改树视图上选定元素的颜色设置?

    我最近在 Eclipse Java EE Luna 上切换到深色主题 甚至尝试了其他深色主题 例如月出 但我总是最终不得不调整一些设置以便能够阅读内容 顺便说一下 我必须每次重新启动 Eclipse 时都会重新设置 我希望他们尽快解决该问题
  • 访问剪贴板的第 N 项

    有没有办法从剪贴板中检索多个项目 我正在使用这样的东西 Dim clipboard As MSForms DataObject Dim str1 As String Dim str2 As String Set clipboard New
  • MPI中如何知道进程正在哪个核心上运行?

    我目前正在开发一个项目 我需要知道 MPI 中当前运行进程的处理器的 coreid MPI中有一个函数叫做MPI Get processor name char name int resultlen 这仅给出进程正在运行的节点的名称 我想知
  • 如何清除v2谷歌地图中的所有标记?

    我需要清除 v2 谷歌地图中的所有标记 再次需要添加一些标记 如果有人知道答案 请分享您的想法 您可以使用googleMap clear https developer android com reference com google an
  • 如何在unix中仅替换>和<之间的一个换行符

    假设我有一条文字 this n is gt n lt 我想用 none 替换换行符 这将导致 this n is gt lt 如何实现这一目标 我尝试使用以下内容 echo this n is gt n lt sed e s gt n g
  • 选项卡栏图标选定的图像

    如何自定义标签栏上选定的图像 图标 这可能吗 请指教 谢谢 无需添加任何子视图即可实现 在定义选项卡栏的类中设置 tabBarItem 至 gt gt UITabBarItem tabBarItem1 self tabBar tabBar
  • 与逻辑语句匹配的 Rcpp 矩阵的子集

    在 R 中 如果我们有一个数据矩阵 比如一个 100 x 10 矩阵 X 以及一个具有可能值 0 1 2 3 的 100 元素向量 t 我们可以使用简单的方法轻松找到 X 的子矩阵 y句法 y X t 1 但是 问题是 我如何使用 Rcpp
  • “d3.translateExtent”坐标如何工作?

    jsfiddle演示 https jsfiddle net sarathsaleem 76t03kbu 我正在尝试向圆圈添加拖动并尝试应用translateExtent 那么如何将拖动边界限制在矩形范围内呢 var height 500 v
  • Python3 globals() 和 locals() 内容

    在我的Python3学习中 在尝试globals 和locals 时 我做了一个非常基本的 独立的Python程序并收到了结果为此我请求专家解释 然后 我在我的 Python 程序 任何 中执行了相同的 2 个函数 并在我的程序中收到了许多
  • 在 T-SQL 中将分钟格式化为小时,将分钟格式化为十进制数

    有没有一种干净而简单的方法将整数格式化为小时和分钟的十进制表示形式 非常遗憾的是 T SQL 中没有 Timespan 这样的东西来支持这一点 需要明确的是 如果我有 70 分钟 我想将其转换为 1 小时 10 分钟 即1 10 我还想将其