sql - 将 hhmmss 转换为 int(HH 转换为 int)
问题描述
我在表格中有一个列HHMMSS
。
与此类似:
SELECT convert(varchar, getdate(), 108)
我需要能够在 MSSMS 中仅使用 HH 生成视图并将其转换为 int。
示例时间
11:08:11,
12:08:12
Int
11
,12
我已经尝试了这个页面上的几个技巧,但在https://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/周围找不到任何工作
解决方案
为什么不直接使用DATEPART
?无需将值从 a 转换datetime
为 avarchar
然后再转换为 a int
。
SELECT DATEPART(HOUR, GETDATE());
编辑:另一方面,我强烈建议您始终确保在使用数据类型时声明您的长度、精度和比例。SELECT CONVERT(varchar, GETDATE(), 108)
将在这里返回整个值,因为(在这种情况下)它会将值转换为 a varchar(25)
,但是,不声明这些参数可以/确实会导致意外行为。
我见过很多人们问“为什么这不起作用?”的问题。因为它们的 SP 被声明为CREATE PROC MyProc @String varchar AS ...
,或者它们的变量声明为DECLARE @MyVar nvarchar;
,这在这两种情况下都意味着长度的值为 1;因此它们的值被截断。
讽刺的编辑:不少于一个小时后......子字符串函数不比较输出;看来我需要订购一个新的水晶球。确切地说,为什么不声明您的长度、精度或比例是一个坏主意。
推荐阅读
- flutter - 在 Android 中更改 Flutter 的表情符号字体
- python - 烧瓶 url_for - 传递参数
- c# - 在 .NET Framework 4.8 中使用 Roslyn 执行的脚本(~.csx)在完成后是否会被卸载
- reactjs - 为什么用户注册公式包含单选按钮时无法提交?
- mysql - 尝试创建事件时出现一些语法错误
- python - 将 for 循环的结果分配给列时没有值
- r - 计算每次连续运行的中位数
- javascript - 如何在 react-chartjs-2 中设置 y 轴的值?
- python - 如何从节点和叶子列表中创建一个新的 N 元 ExpressionTree 对象?
- java - 运行 JAR 时在哪里添加 opencsv 类路径以修复 ClassNotFoundException?