sql 计算一个月几天

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 计算一个月几天相关的知识,希望对你有一定的参考价值。

参考技术A 可以将年月组成一个月的第一天,再与下个月第一天比较差异天数
declare
@ym
varchar(6)
--年月
select
datediff(day,
cast(@ym+
'01'
as
datetime),dateadd(month,1,cast(@ym+
'01'
as
datetime))
)
参考技术B 按实际年份的日历计算。比如1月是31天,2月是28天,如果是闰年,则是29天。 参考技术C 使用
datediff
来获取两个时间差:
如语句:
select
datediff(day,"2015-2-1","2015-3-1")
返回2105年2月份共
28

DATEDIFF
函数
[日期和时间]
功能
返回两个日期之间的间隔。
语法
DATEDIFF
(
date-part,
date-expression-1,
date-expression-2
)
date-part
:
year
|
quarter
|
month
|
week
|
day
|
hour
|
minute
|
second
|
millisecond
参数
date-part
指定要测量其间隔的日期部分。
有关日期部分的详细信息,请参见日期部分。
date-expression-1
某一间隔的起始日期。从
date-expression-2
中减去该值,返回两个参数之间
date-parts
的天数。
date-expression-2
某一间隔的结束日期。从该值中减去
Date-expression-1,返回两个参数之间
date-parts
的天数。
用法
此函数计算两个指定日期之间日期部分的数目。结果为日期部分中等于(date2
-
date1)的有符号的整数值。
当结果不是日期部分的偶数倍时,DATEDIFF
将被截断而不是被舍入。
当使用
day
作为日期部分时,DATEDIFF
返回两个指定的时间之间(包括第二个日期但不包括第一个日期)的午夜数。
当使用
month
作为日期部分时,DATEDIFF
返回两个日期之间(包括第二个日期但不包括第一个日期)出现的月的第一天的数目。
当使用
week
作为日期部分时,DATEDIFF
返回两个日期(包括第二个日期但不包括第一个日期)之间星期日的数目。
对于更小的时间单位存在溢出值:
milliseconds
24

seconds
68

minutes
4083

others
没有溢出限制
如果超出这些限制,此函数将返回溢出错误。
标准和兼容性
SQL/92
Transact-SQL
扩展。
SQL/99
Transact-SQL
扩展。
Sybase

Adaptive
Server
Enterprise
兼容。
下面示例的语句返回
1:
SELECT
datediff(
hour,
'4:00AM',
'5:50AM'
)
下面的语句返回
102:
SELECT
datediff(
month,
'1987/05/02',
'1995/11/15'
)
下面的语句返回
0:
SELECT
datediff(
day,
'00:00',
'23:59'
)
下面的语句返回
4:
SELECT
datediff(
day,'1999/07/19
00:00','1999/07/23
23:59'
)
下面的语句返回
0:
SELECT
datediff(
month,
'1999/07/19',
'1999/07/23'
)
下面的语句返回
1:
SELECT
datediff(
month,
'1999/07/19',
'1999/08/23'
)

以上是关于sql 计算一个月几天的主要内容,如果未能解决你的问题,请参考以下文章

英语中的一个月几天的表示法

java 计算当前日期之后一年半是几几年几月几日

算法设计-模拟日期问题

用java运行给出年份和是这一年的第几天,求是这一年的几月几号急等拜托各位大神

在EXCEL中,今天到下个月今天的天数怎么计算,求教了

新手求教Java时间转换问题(增加天数后的日期输出)