时间戳SQL中时间段的Case语句



总之,我试图只隔离日期/时间戳的时间部分,然后创建一个case语句来用数据填充另一列。日期/时间戳是这样的:2022-03-25 04:00:00

这是我最初写的代码,但当我只使用小时部分时,我在PowerBi中收到一个错误,说日期/时间戳无效。。。

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 server是什么版本。因此,为了让它更容易,这是一个工作示例,例如在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'

示例结果:

日期时间标签02022-04-04T00:18:13.203Z夜间

最新更新