C#/JavaScript/SqlServer 对日期时间的操作整理汇总
前言:针对C#/JavaScript/SqlServer常用的对日期时间的操作函数抽时间做了一个整理,网络上有许多,但是许多都不全,这些都是时间日期常用的一些操作!
一、C# 常用日期时间操作
//获取日期+时间
DateTime.Now.ToString();
// 2008-9-4
20:02:10
DateTime.Now.ToLocalTime().ToString();
// 2008-9-4
20:12:12
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") 24小时制
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") 12小时制
//获取日期
DateTime.Now.ToLongDateString().ToString();
// 2008年9月4日
DateTime.Now.ToShortDateString().ToString();
//
2008-9-4
DateTime.Now.ToString("yyyy-MM-dd");
//
2008-09-04
DateTime.Now.Date.ToString();
// 2008-9-4
0:00:00
//获取时间
DateTime.Now.ToLongTimeString().ToString();
// 20:16:16
DateTime.Now.ToShortTimeString().ToString(); //
20:16
DateTime.Now.ToString("hh:mm:ss");
//
08:05:57
DateTime.Now.TimeOfDay.ToString();
//
20:33:50.7187500
//其他
//n为一个数,可以数整数,也可以事小数
DateTime.Now.AddYears(n).ToString();
//时间加n年
DateTime.Now.AddDays(n).ToString();
//加n天
DateTime.Now.AddHours(n).ToString();
//加n小时
DateTime.Now.AddMonths(n).ToString();
//加n个月
DateTime.Now.AddSeconds(n).ToString();
//加n秒
DateTime.Now.AddMinutes(n).ToString();
//加n分
DateTime lastMonth = DateTime.Now.AddMonths(-1);
string
LastMonth_firstDay = lastMonth.AddDays(1 -
lastMonth.Day).ToString("yyyy-MM-dd");//获取上个月的第一天
string LastMonth_lastDay =
lastMonth.AddDays(1 -
lastMonth.Day).AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");
//获取上个月的最后一天
DateTime startWeek = dt.AddDays(1 -
Convert.ToInt32(dt.DayOfWeek.ToString("d"))); //本周周一
DateTime endWeek =
startWeek.AddDays(6); //本周周日
DateTime startMonth =
dt.AddDays(1 - dt.Day); //本月月初
DateTime endMonth =
startMonth.AddMonths(1).AddDays(-1); //本月月末
//DateTime endMonth =
startMonth.AddDays((dt.AddMonths(1) - dt).Days - 1);
//本月月末
DateTime startQuarter = dt.AddMonths(0 - (dt.Month - 1) %
3).AddDays(1 - dt.Day); //本季度初
DateTime endQuarter =
startQuarter.AddMonths(3).AddDays(-1); //本季度末
DateTime startYear =
new DateTime(dt.Year, 1, 1); //本年年初
DateTime endYear = new
DateTime(dt.Year, 12, 31); //本年年末
二、javascript 常用日期时间操作
var myDate = new Date(); //获取当前日期
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear();
//获取完整的年份(4位,1970)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours();
//获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds();
//获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString();
//获取当前日期
var
mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString(
); //获取日期与时间
三、SqlServer 日期时间操作
1、获取当前时间
select getdate()
2、截取需要的值
select
datepart(year,getdate())
select datepart(month,getdate())
select
datepart(day,getdate())
select datepart(hour,getdate())
select
datepart(minute,getdate())
select
datepart(second,getdate())
select
datepart(week,getdate())
3、在日期中添加或减去指定的时间间隔
select
dateadd(year,3,getdate()) --获取当前时间,往后推迟三年
select
dateadd(month,3,getdate()) --获取当前时间,往后推迟三个月
select
dateadd(day,3,getdate()) --获取当前时间,往后推迟三天
select dateadd(hour,3,getdate())
--获取当前时间,往后推迟三小时
select dateadd(minute,3,getdate())
--获取当前时间,往后推迟三分钟
select dateadd(second,3,getdate())
--获取当前时间,往后推迟三秒钟
4、返回两个日期之间的时间
select
datediff(year,‘2001-08-19‘,getdate()) --2001-08-19和当前时间之间差多少年
select
datediff(month,‘2001-08-19‘,getdate()) --2001-08-19和当前时间之间差多少月
select
datediff(day,‘2001-08-19‘,getdate())
--2001-08-19和当前时间之间差多少天
5、用不同的格式显示日期/时间
select
convert(char,getdate(),8) --显示当前时-分-秒
select
convert(char,getdate(),10) --显示当前月-日-年,显示形式“08-19-11”
select
convert(char,getdate(),11) --显示当前年-月-日,显示形式“11/08/19”
select
convert(char,getdate(),14)
--显示当前时-分-秒-毫秒,显示形式“14:54:57:090”
6、其他
SELECT
CONVERT(datetime,CONVERT(char(8),GETDATE(),120)+‘1‘)--这月的第一天
select
dateadd(d,-day(getdate()),dateadd(m,1,getdate()))--这月的最后一天
SELECT
DATEADD(mm,DATEDIFF(mm,0,dateadd(month,-1,getdate())),0)--上月第一天
select
dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))--上月最后一天
select
DATEADD(SS,-1,dateadd(day,1,CONVERT(varchar(15) , getdate(), 102
)))--获取当天的最后一刻