根据日期计算当月有多少天
IF OBJECT_ID (N ' Test ' , N ' U ' ) IS NOT NULL
DROP TABLE Test
-- 2.建立测试表,并填充测试数据
SELECT * INTO Test
FROM
(
SELECT CONVERT ( DATETIME , ' 2008-1-1 ' , 120 ) AS dt UNION ALL SELECT ' 2008-1-15 ' UNION ALL SELECT ' 2008-1-31 '
UNION ALL SELECT ' 2008-2-1 ' UNION ALL SELECT ' 2008-2-15 ' UNION ALL SELECT ' 2008-2-29 '
UNION ALL SELECT ' 2007-2-1 ' UNION ALL SELECT ' 2007-2-15 ' UNION ALL SELECT ' 2007-2-28 '
UNION ALL SELECT ' 2007-4-1 ' UNION ALL SELECT ' 2007-4-15 ' UNION ALL SELECT ' 2007-4-30 '
) T
-- 3.根据日期计算当月有多少天
SELECT *
-- 当月天数=32-[(上月最后最后一天+32天)的日期值]
-- e.g. '2008-1':32-day('2008-2-1') '2008-2':32-day('2008-3-3')
, ds1 = 32 - DAY (dt - DAY (dt) + 32 )
-- 当月天数=当月最后一天的日期值
-- e.g. '2008-1':day('2008-1-31') '2008-2':day('2008-2-29')
, ds2 = DAY ( DATEADD (mm, 1 ,dt) - DAY ( DATEADD (mm, 1 ,dt)))
, ds3 = DAY ( DATEADD (mm, MONTH (dt), dt - DATEPART (dy,dt)))
, ds4 = DAY ( DATEADD (d, - 1 , CONVERT ( VARCHAR ( 8 ), DATEADD (m, 1 ,dt), 120 ) + ' 01 ' ))
-- 当月天数=本月一号到下月一号的天数差值
-- e.g. datediff(d, '2008-1-1', '2008-2-1')
, ds5 = DATEDIFF (d, DATEADD (dd, 1 - DAY (dt),dt), DATEADD (mm, 1 , DATEADD (dd, 1 - DAY (dt),dt)))
, ds6 = DATEDIFF (d, DATEADD (m, DATEDIFF (m, 0 , dt), 0 ), DATEADD (m, datediff (m, 0 , dt) + 1 , 0 ))
, ds7 = DATEDIFF (d, CONVERT ( VARCHAR ( 8 ), dt, 120 ) + ' 01 ' , CONVERT ( VARCHAR ( 8 ), DATEADD (m, 1 ,dt), 120 ) + ' 01 ' )
from Test
/**/ /*
dt ds1 ds2 ds3 ds4 ds5 ds6 ds7
----------------------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
2008-01-01 00:00:00.000 31 31 31 31 31 31 31
2008-01-15 00:00:00.000 31 31 31 31 31 31 31
2008-01-31 00:00:00.000 31 31 31 31 31 31 31
2008-02-01 00:00:00.000 29 29 29 29 29 29 29
2008-02-15 00:00:00.000 29 29 29 29 29 29 29
2008-02-29 00:00:00.000 29 29 29 29 29 29 29
2007-02-01 00:00:00.000 28 28 28 28 28 28 28
2007-02-15 00:00:00.000 28 28 28 28 28 28 28
2007-02-28 00:00:00.000 28 28 28 28 28 28 28
2007-04-01 00:00:00.000 30 30 30 30 30 30 30
2007-04-15 00:00:00.000 30 30 30 30 30 30 30
2007-04-30 00:00:00.000 30 30 30 30 30 30 30
(12 row(s) affected)
*/
-- 4.删除测试表
DROP TABLE Test
根据日期计算当月有多少天相关推荐
- js根据给定的日期计算当月有多少天
这个代码没什么,贴上来,我想表达的重点隐藏在代码中,找找看! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...
- JAVA 计算当月有多少天
1.计算当前月总共的天数 /*** 计算当前月有多少天* * @return*/public int getDays(int year, int month) {int days = 0;if (mo ...
- 【Oracle】oracle 计算当月有多少个星期天、星期六、星期一
-- 当前月有多少个星期天 select case when mod(1 + 7 - to_char(trunc(sysdate, 'MM'), 'D'), 7) + trunc(sysdate, ' ...
- java日期的计算(当月剩余天数、获取日期当月的天数)
日常开发中会遇到关于日期的计算比如:当月的天数.两日期之间的天数.当月剩余天数等等...... 下方为关于日期计算的demo,后期会持续更新... 获取日期当月的天数或某月总天数 /*** 获取日期当 ...
- PLSQL计算日期是当月第几周
网上查询的方法都是这个: SELECT TO_CHAR (p_date, 'W') INTO v_week FROM DUAL; 它实际上是星期N在当月第几次出现. 如本月的第1天是个周四,那么为个月 ...
- 根据具体日期计算是一年的第几周和当月的第几周
根据具体日期计算是一年的第几周: <!DOCTYPE html> <html lang="en"> <head><meta charset ...
- JAVA 计算日期属于当月第几周(日期周计算)
计算日期属于当月第几周(日期周计算) 本文周计算时间方式为:当月第一个周一为第一周 计算 获取月第一个周一.从当月第一天开始找 第一个周一时间与 sourceTime [传入时间对比],sourceT ...
- Oracle常用日期计算(年初、月初、本周第一天、当年第几周、当月第几周)
为方便计算,文中的日期统一使用number类型,如:20220831 一.计算当年年初日期 create or replace function f_get_nc (v_rq in number -- ...
- 标 题:[转帖]SQL Server日期计算(收藏)
分 类:数据库相关 关键字 :日期 相 关:作者:未知 来源:xpilot 的 Blog 引 用:[0]http://goaler.xicp.net/TrackBack.asp ...
最新文章
- 十二、springboot 详解RestControllerAdvice(ControllerAdvice)
- 设计模式 -- 中介者设计模式 (Mediator Pattern)
- VC++实现恢复SSDT
- TensorFlow实现案例汇集:代码+笔记
- datagridview绑定xml
- 百度地图SDK v3.6.0以上版本找不到PoiOverlay类的解决方法
- Swift:用UICollectionView整一个瀑布流
- udemy下载课程无法播放_最好的Udemy Web开发课程+热门免费课程
- ANSI,Unicode,UTF-8网页编码的区别【转】
- centos6.5 python2.6.6升级到python2.7.15
- Hive的查询结果保存方法
- MODIS数据的简介和下载(三)——MODIS数据下载方式(基于MODIS Web Service)
- UVA11565 Simple Equations【数学+暴力】
- 从狗屁不通文章生成器,到机器写作之路
- 请问如何制作中国象棋对弈软件的界面部分?
- PS自定义形状+笔刷添加打造完美水印
- Thinkphp微信幸运大转盘抽奖实例
- python数字加密资产_GitHub - ezpod/crypto-exchange-engine: 数字加密资产交易引擎的原理性实现代码,汇智网提供...
- Flutter 实现剑气加载
- 第五十四讲 设备树实现RGB驱动
热门文章
- 【机器视觉】Halcon 18安装教程
- 2021年遭遇苹果审核2.3.1的开发过审经历
- 手游开发神器 cocos2d-x editor 教程聚合和代码下载(持续更新中)
- 为什么你读专业技术书逐渐焦虑,读不下去书怎么办?
- ShardingSphere 分片算法
- 点击按钮没反应,或者有时有反应有时没反应
- addon@Node.js之新手上路
- easyloader [easyui_1.4.2] 分析源码,妙手偶得之
- ye lynn yama Loafer 已发送,请注意查收
- 帝国时代3如何快速实现训练单位突破人口上限