如何从YYYY-mm格式获取天数和月数?

时间:2019-02-13 14:10:46

标签: sql sql-server tsql

我的表中有许多varchar YYYY-mm值:

enter image description here

但是现在我需要从此开始每个月的工作。

  

我需要结果:2018-04-> 30天

那我该如何实现呢?

我先谢谢你!

2 个答案:

答案 0 :(得分:4)

您可以使用eomonth()

select day(eomonth(convert(date, yyyymm + '-01')))

Here是怀疑者的db <>小提琴。

答案 1 :(得分:1)

除了戈登的即席答案外,这是另一种计算月份中天数的方法:

SELECT
    DATEDIFF(day,
             TRY_CONVERT(datetime, date+'01'),
             DATEADD(month, 1, TRY_CONVERT(datetime, date+'01')))
FROM yourTable;

Demo

实际上,如果您长期需要每个日历月的天数超出某个范围,则可能只想使用此固定表创建日历表。然后,您可以在需要时加入它。