【发布时间】:2022-07-01 04:39:35
【问题描述】:
我的 SQL 有以下顶部部分。我正在尝试提取一个月中当前的天数。当我运行它时,我得到了错误
无效操作:不能将整数类型转换为没有时区的时间戳;
我如何更新它以获取当月的天数?
SELECT
T1.costcenter_id,
DATEPART(MONTH, GETDATE())as "present month",
DATEPART(DAY, GETDATE())as "present day",
DAY(EOMONTH(GETDATE())) as "days in month",
我将其用作临时选项
CASE
WHEN DATEPART(MONTH, GETDATE()) = 1 THEN 31
WHEN DATEPART(MONTH, GETDATE()) = 2 THEN 28
WHEN DATEPART(MONTH, GETDATE()) = 3 THEN 31
WHEN DATEPART(MONTH, GETDATE()) = 4 THEN 30
WHEN DATEPART(MONTH, GETDATE()) = 5 THEN 31
WHEN DATEPART(MONTH, GETDATE()) = 6 THEN 30
WHEN DATEPART(MONTH, GETDATE()) = 7 THEN 31
WHEN DATEPART(MONTH, GETDATE()) = 8 THEN 31
WHEN DATEPART(MONTH, GETDATE()) = 9 THEN 30
WHEN DATEPART(MONTH, GETDATE()) = 10 THEN 31
WHEN DATEPART(MONTH, GETDATE()) = 11 THEN 30
WHEN DATEPART(MONTH, GETDATE()) = 12 THEN 31
END AS days_in_month
最终目标是获得当月的完成百分比,因此如果 6 月 3 日还有 93% 的剩余时间。下面的查询是我想要完成的。
1-(DATEPART(DAY, GETDATE())/ total days in the month) as % complete
【问题讨论】:
-
我收到以下错误,因为数据集中没有日期,我将 GETDATE() 指定为要添加的日期。““@”或附近的语法错误
-
@Jesusbrother,你分享的上半部分好像没问题,你可以只运行你分享的选择,不包括 T1.costcenter_id 列吗?
-
@PankajSanwal 是的,这里没有发生错误:dbfiddle.uk/…
-
是的,我在“@”附近遇到了同样的错误
标签: sql