时间戳 SQL 中时间段的案例语句
Case statement for the time section in a timestamp SQL
全部,我试图仅隔离 date/time 戳记的时间部分,然后创建一个案例语句以用数据填充另一列。这是 date/time 邮票的样子:2022-03-25 04:00:00
这是我最初编写的代码,但是当我只使用小时部分时,我在 PowerBi 中收到一条错误消息,提示 date/timestamp...
case when create_tmstp between '04:00:00' and '07:30:00' then 'N' else 'D' end as Day_Night,
从外观上看,您使用的是 SQL,而不是 DAX。我这么说是因为你用 dax 标记了它而不是 SQL.
问题是您没有向我们展示 create_tmsp 是什么,或者您使用的是哪种 sql 服务器的哪个版本。因此,为了方便起见,这是一个可以在 SSMS 中使用的示例。这使用 getdate() 来获取当前日期时间,然后将其转换为仅显示现在的时间(0-24),然后有一种情况会检查它属于哪个时间间隔。您可以使用它,如果您使用的服务器接受此语法,只需将 getdate() 替换为您希望使用的列即可。
select
DATEPART(HOUR,getdate()) AS 'HOUR',
getdate() AS 'Datetime',
CASE WHEN DATEPART(HOUR,getdate()) BETWEEN 9 AND 16
THEN 'Day'
WHEN DATEPART(HOUR,getdate()) BETWEEN 17 AND 24
THEN 'Evening'
WHEN DATEPART(HOUR,getdate()) BETWEEN 0 AND 4
THEN 'Night'
WHEN DATEPART(HOUR,getdate()) BETWEEN 5 AND 8
THEN 'Morning'
END AS 'Label'
示例结果:
Hour
Datetime
Label
0
2022-04-04T00:18:13.203Z
Night
Fiddle 这里:
http://sqlfiddle.com/#!18/56f78/3829
全部,我试图仅隔离 date/time 戳记的时间部分,然后创建一个案例语句以用数据填充另一列。这是 date/time 邮票的样子:2022-03-25 04:00:00
这是我最初编写的代码,但是当我只使用小时部分时,我在 PowerBi 中收到一条错误消息,提示 date/timestamp...
case when create_tmstp between '04:00:00' and '07:30:00' then 'N' else 'D' end as Day_Night,
从外观上看,您使用的是 SQL,而不是 DAX。我这么说是因为你用 dax 标记了它而不是 SQL.
问题是您没有向我们展示 create_tmsp 是什么,或者您使用的是哪种 sql 服务器的哪个版本。因此,为了方便起见,这是一个可以在 SSMS 中使用的示例。这使用 getdate() 来获取当前日期时间,然后将其转换为仅显示现在的时间(0-24),然后有一种情况会检查它属于哪个时间间隔。您可以使用它,如果您使用的服务器接受此语法,只需将 getdate() 替换为您希望使用的列即可。
select
DATEPART(HOUR,getdate()) AS 'HOUR',
getdate() AS 'Datetime',
CASE WHEN DATEPART(HOUR,getdate()) BETWEEN 9 AND 16
THEN 'Day'
WHEN DATEPART(HOUR,getdate()) BETWEEN 17 AND 24
THEN 'Evening'
WHEN DATEPART(HOUR,getdate()) BETWEEN 0 AND 4
THEN 'Night'
WHEN DATEPART(HOUR,getdate()) BETWEEN 5 AND 8
THEN 'Morning'
END AS 'Label'
示例结果:
Hour | Datetime | Label |
---|---|---|
0 | 2022-04-04T00:18:13.203Z | Night |
Fiddle 这里: http://sqlfiddle.com/#!18/56f78/3829