小编Imp*_*ert的帖子

当在CASE WHEN/IIF中使用时,SQL HASHBYTES函数返回奇怪的输出

我编写了一个存储过程来散列某个列的值.我需要在CASE WHEN或IIF语句中使用此HASHBYTES函数,如下所示:

DECLARE @Hash varchar(255) = 'testvalue'
SELECT    IIF(1=1, HASHBYTES('SHA1',@Hash), @Hash)
SELECT CASE WHEN 1=1 THEN HASHBYTES('SHA1',@Hash) END  AS Hashcolumn
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么我从上面的查询得到不同的输出?似乎每当我在CASE WHEN/IIF语句中添加一个ELSE时,它都会返回一串奇怪的字符(ü<þ+OUL'RDOk{­\Ìø如上例所示).

谁能告诉我为什么会这样?我需要使用CASE WHEN或IIF.

多谢你们

sql sql-server stored-procedures hashbytes

2
推荐指数
1
解决办法
274
查看次数

减去年份和月份

我有以下查询

SELECT LEFT(CONVERT(varchar,DATEADD(MONTH,-1, GETDATE()),112),6)
Run Code Online (Sandbox Code Playgroud)

这将导致:201708(截至今日的getdate())

我还需要减去一年,因此它将会到来:201608

我尝试添加另一个DATEADD函数,但我无法让它工作.

任何人都能指出我正确的方向吗?

sql sql-server stored-procedures

1
推荐指数
1
解决办法
789
查看次数

SQL Server 13个月中的荷兰语varchar日期问题

我的数据库中有以下日期时间格式(作为varchar)13-04-2018 1:05:00.

我需要将其转换为以下格式:2018-04-13 01:05:00.作为datetime.

正常转换函数无法执行此操作,因为它们尝试执行第13个月,并且该月不存在.这个错误:

将varchar数据类型转换为日期时间数据类型会导致超出范围的值.

有人知道如何转换这个日期问题吗?

sql sql-server stored-procedures

0
推荐指数
1
解决办法
208
查看次数

基于 Azure ARM JSON 的变量标签

我们使用以下模板通过 ARM 模板部署多个资源组:

"parameters": {
    "ResourceGroups": {
          "type": "array",
          "defaultValue": [
            "RG1",
            "RG2",
            "RG3"
          ]
        }
    "resources": [
          {
            "type": "Microsoft.Resources/resourceGroups",
            "apiVersion": "2018-05-01",
            "location": "[parameters('rgLocation')]",
            "name": "[parameters('ResourceGroups')[copyIndex()])]",
            "copy": {
              "name": "resourcegroupcopy",
              "count": "[length(parameters('ResourceGroups'))]",
              "mode": "serial"
            },
"properties": {},
        "tags": {}
Run Code Online (Sandbox Code Playgroud)

我们还希望在这些资源组上编写 Azure 标记脚本。然而,问题是,并非我们创建的所有资源组都需要相同的标签。它们因资源组而异。

例如:RG1 需要 Tag1,RG2 需要 Tag2,等等。

我如何将其放入我的脚本中?

任何人都可以指出我正确的方向吗?

谢谢!

json azure azure-resource-manager azure-rm-template

0
推荐指数
1
解决办法
764
查看次数