zoukankan      html  css  js  c++  java
  • SQL和C#的常用时间日期处理

    C#


    //以下的毫秒都采用最大997,而不是999 因为SQL SERVER的精度为3毫秒
    //本月的天数
    int daysInMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);

    //本年的天数 是否是闰年           
    int daysInYear = DateTime.IsLeapYear(DateTime.Now.Year) ? 366 : 365;
    int daysInYear=new DateTime(DateTime.Now.Year,12,31).DayOfYear;
    //本月第一天
    DateTime firstDayInMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
    //本月的最后一天 本月1号加一个月得下月1号,再剪掉一天就是本月最后一天
    DateTime lastDayInMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1).AddDays(-1);
    //本月最后一天的午夜
    DateTime lastDayInMonth2 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1).AddMilliseconds(-3);

    //本年第一天
    DateTime firstDayInYear = new DateTime(DateTime.Now.Year, 11);

    //本年最后一天
    DateTime lastDayInYear = new DateTime(DateTime.Now.Year, 1231);
    //本年最后一天的午夜
    DateTime lastDayInYear2 = new DateTime(DateTime.Now.Year, 1231235959997);

    //得到星期几 星期天为7
    int dayOfWeek = Convert.ToInt32(DateTime.Now.DayOfWeek) < 1 ? 7 : Convert.ToInt32(DateTime.Now.DayOfWeek);
    //本周一  Date属性:新的 DateTime,其日期与此实例相同,时间值设置为午夜 12:00:00 (00:00:00)。          
    DateTime monday =DateTime.Now.Date.AddDays(1 - dayOfWeek);
    //本周 星期天                        
    DateTime sunday = DateTime.Now.Date.AddDays(7 - dayOfWeek);
    //本周 星期天的午夜            
    DateTime sunday2 = DateTime.Now.Date.AddDays(8 - dayOfWeek).AddMilliseconds(-3);

    //本季度第一天
    DateTime firsyDayInQuarter = new DateTime(DateTime.Now.Year, DateTime.Now.Month - (DateTime.Now.Month - 1% 31);
    //本季度最后一天
    DateTime lastDayInQuarter = new DateTime(DateTime.Now.Year, DateTime.Now.Month - (DateTime.Now.Month - 1% 31).AddMonths(3).AddDays(-1);
    //本季度最后一天的午夜
    DateTime lastDayInQuarter2 = new DateTime(DateTime.Now.Year, DateTime.Now.Month - (DateTime.Now.Month - 1% 31).AddMonths(3).AddMilliseconds(-3);
    SQL:
    --本月的天数
    select day(dateadd(day,-1,dateadd(month,1,convert(char(8),getdate(),120)+'01')))

    --本年的天数
    select datediff(day,datename(year,getdate())+'-01-01',datename(year,getdate())+'-12-31')+1

    --本月第一天
    select convert(char(8),getdate(),120)+'01'

    --本月最后一天
    select dateadd(day,-1,dateadd(month,1,convert(char(8),getdate(),120)+'01'))
    --本月最后一天午夜
    select dateadd(ms,-3,dateadd(month,1,convert(char(8),getdate(),120)+'01'))

    --本年第一天
    select convert(char(5),getdate(),120)+'01-01'
    --本年最后一天
    select convert(char(5),getdate(),120)+'12-31'
    --本年最后一天午夜
    select convert(char(5),getdate(),120)+'12-31 23:59:59:997'

    --抱歉之前的有误,因为系统默认星期天为一周开始,所以先把日期减一天来计算
    --
    本周一
    select dateadd(week,datediff(week,0,getdate()-1),0)
    --本周 星期天 得到下周一,再减掉一天
    select dateadd(day,-1,dateadd(week,datediff(week,0,getdate()-1)+1,0))
    --本周星期天的午夜 得到下周一,再减掉3毫秒
    select dateadd(ms,-3,dateadd(week,datediff(week,0,getdate()-1)+1,0))

    --本季度第一天
    select dateadd(quarter,datediff(quarter,0,getdate()),0)
    --本季度最后一天
    select dateadd(day,-1,dateadd(quarter,datediff(quarter,0,getdate())+1,0))
    --本季度最后一天的午夜
    select dateadd(ms,-3,dateadd(quarter,datediff(quarter,0,getdate())+1,0))
  • 相关阅读:
    多态及鸭子类型
    面向对象三大特性之——继承
    类的组合
    类的成员和命名空间
    JAVA中常用的类
    JAVA自学笔记(5)
    JAVA自学笔记(4)
    JAVA自学笔记(3)
    JAVA自学笔记(2)
    JAVA自学笔记(1)
  • 原文地址:https://www.cnblogs.com/conan304/p/1546972.html
Copyright © 2011-2022 走看看