Sql获取周、月、年的首尾时间。

SELECT DATEADD(ww,DATEDIFF(ww,0,getdate()),0) -- 本周周一
SELECT DATEADD(dd,-1,DATEADD(ww,DATEDIFF(ww,0,getdate())+1,0)) -- 本周周末
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) -- 本月月初
SELECT DATEADD(dd,-1,DATEADD(mm,DATEDIFF(mm,0,getdate())+1,0)) -- 本月月末
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()) - 1,0) -- 上月月初
SELECT DATEADD(dd,-1,DATEADD(mm,DATEDIFF(mm,0,getdate()),0)) -- 上月月末
SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0) -- 本年年初
SELECT DATEADD(dd,-1,DATEADD(yy,DATEDIFF(yy,0,getdate()) + 1,0)) -- 本年年末
SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()) - 1,0) -- 去年年初
SELECT DATEADD(dd,-1,DATEADD(yy,DATEDIFF(yy,0,getdate()),0)) -- 去年年末

思路是利用datediff函数获取指定日期与1900-01-01 00:00:00的相应差值来计算得到目标日期。

时间: 2024-10-27 06:44:04

Sql获取周、月、年的首尾时间。的相关文章

Sql获取当月月初和月末的时间

DECLARE @CurrentTime DATETIME DECLARE @Start DATETIME DECLARE @End DATETIME SET @CurrentTime = GETDATE() SET @Start = DATEADD(ms, -1, DATEADD(mm, DATEDIFF(m, 0, @CurrentTime), 0)) SET @End = DATEADD(ms, -3, DATEADD(mm, DATEDIFF(m, 0, @CurrentTime) +

PL/SQL 获取一个月的天数排除周六周日

create or replace PROCEDURE GETWORKDAYS ( sdate IN VARCHAR2 , TDAYS OUT INTEGER ) AStotalDays INTEGER:=0;tempDate VARCHAR2(20);tempWeek INTEGER;BEGIN TDAYS:=0; select add_months(to_date(sdate, 'yyyy-mm-dd'),1)-to_date(sdate, 'yyyy-mm-dd') into totalD

java获取当前时间的年周月季度等的开始结束时间

import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created by xiaochun on 2016/3/24. */ public class TimeUtil { public static void main(String[] args) { System.out.println("当前小时开始:"+getCurrentHourStartTime

获得自然日周月时间

1.以下函数都可以直接使用. function getReportDates($periods){ $dates = array(); //当前时间周期的起止时间 $end = getWeekendByDate($periods); $start = date("Y-m-d",strtotime("-".($periods-1). "day",strtotime($end))); //获取日期($times个周期) $dates['start']

获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)

获取周的第一天,最后一天 System.out.println(getStartEndDate("2016-05-01", 1)); 获取星期的第一天和最后一天 System.out.println(getStartEndDate("2016-05-01", 0)); public static String getStartEndDate(String aDay, int type) { SimpleDateFormat df = new SimpleDateFo

php获取前一天,前一个月,前一年的时间

获取前一天的时间: $mytime= date("Y-m-d H:i:s", strtotime("-1 day")); 获取三天前的时间: $mytime= date("Y-m-d H:i:s", strtotime("-3 day")); 获取前一个月的时间: $mytime= date("Y-m-d H:i:s", strtotime("-1 month")); 获取前3个月的时间

Java Calendar获取年、月、日、时间

Java Calendar获取年.月.日.时间 Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));    //获取东八区时间 int year = c.get(Calendar.YEAR);    //获取年  int month = c.get(Calendar.MONTH) + 1;   //获取月份,0表示1月份  int day = c.get(Calendar.DAY_OF_MONTH);

每天进步一点点之SQL 获取表中某个时间字段离当前时间最近的几条

实际中用到的SQL: select * from (select top 3 Id, case when startSignup>GETDATE() then '敬请期待' when (startSignup<GETDATE() and  endsignUp>=getdate()) then '正在报名'  when (StartDate<GETDATE() and EndDate>=GETDATE())or (StartDate<GETDATE() and EndDa

php 根据周数获取本周的开始时间与最后时间

/** * 根据第几周获取本周的开始时间与最后时间 * @param int $year 年份 $weeks = get_week($year) * @param 如获取第18周的开始时间$weeks[18][0] * @param 如获取第18周的最后时间$weeks[18][1] */ static public function get_week($year) { $year_start = $year . "-01-01"; $year_end = $year . "