我们有一个旧的SQL表,SQL Server 2000使用了近10年.
在这里面,我们的员工徽章号码存储为char(6)从000001到999999.
我现在正在编写一个Web应用程序,我需要存储员工徽章编号.
在我的新表,我可以走捷径,并复制旧表,但是我希望有更好的数据传输,更小的尺寸等,通过简单地存储int从价值观1到999999.
在C#中,我可以使用快速格式化int徽章编号的值
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
Run Code Online (Sandbox Code Playgroud)
我如何修改这个简单的SQL查询以格式化返回的值?
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
Run Code Online (Sandbox Code Playgroud)
如果EmployeeID是7135,则应返回此查询007135.
我正在尝试编写一个存储过程,从表中选择列,并向ResultSet添加2个额外的列.这两个额外的列是表中字段转换的结果,该字段是Datetime字段.
日期时间格式字段具有以下格式'YYYY-MM-DD HH:MM:SS.S'
另外两个字段应采用以下格式:
示例:如果字段中的数据为"2008-10-12 13:19:12.0",则提取的字段应包含:
我尝试过使用CONVERT字符串格式,但没有一种格式符合我想要的输出.我正在考虑通过CONVERT提取字段数据然后使用REPLACE,但我肯定需要一些帮助,因为我不确定.
任何精通存储过程的人都可以帮助我吗?谢谢!
考虑 SQL Server 2012 中的表
789-0000000
Run Code Online (Sandbox Code Playgroud)
上述数字将被视为 SQL Server 2012 中的字符串,但每当我更新记录时,我都需要增加到 1。
例如:
789-0000001789-0000002最后增量应该只789-做0000000
我需要用零填充我的列,最多可达 7 个。有些已经是 7 位数字了,但任何不是 7 位数字的都需要前导 0。对此进行编码的最佳方法是什么?
我有如下要求:
SELECT code from Products
Run Code Online (Sandbox Code Playgroud)
样品:
If code is : 1234 => 00001234
12345 => 00012345
..... => xxxxxxxx
Run Code Online (Sandbox Code Playgroud)
我想在SQL Server 2012中使用存储过程来执行此操作.