一:SQL中的DataTime
1. between and 相当于>= and <=
2. 常用的将DataTime查询成字符串的方法
Select CONVERT(varchar(100), GETDATE(), 23): // yyyy-MM-dd
Select CONVERT(varchar(100), GETDATE(), 20): // yyyy-MM-dd HH:mm:ss
Select CONVERT(varchar(100), GETDATE(), 111): //yyyy/MM/dd
Select CONVERT(varchar(100), GETDATE(), 112): //yyyyMMdd
二:JS中的Datatime
1. 生成时间:var a=new Date(yyyy,MM,dd,HH,mm,ss)
返回值:周 M+1 d HH:mm:ss UTC+0800 yyyy
(若d 超过月份M+1的天数,则返回M+2月 日 则为d减去M+1月份的天数)
New Date(n) ;
n是距离1970年1月1日的毫秒数
返回值是 周 月 1 HH:mm:ss UTC+0800 yyyy
2. 获取时间:var myDate = new Date();
var year=myDate.getYear(); //获取当前年份(2位)
var year1=myDate.getFullYear(); //获取完整的年份(4位,1970)
var moonth=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(); //获取当前日期 yyyy年M月d日
myDate.toLocaleTimeString(); //获取当前时间HH:mm:ss
myDate.toLocaleString( ); //获取日期与时间yyyy年M月d日 HH:mm:ss
3. Date.parse方法支持的参数类型以及返回的结果类型
(Date对象的一个静态方法,其作用是“解析一个包含日期的字符串,并返回该日期与 1970 年 1 月 1 日午夜之间所间隔的毫秒数”。)
a.Date.parse(“yyyy-MM-dd”)
// On IE and Mozilla: NaN
b.Date.parse( "MM-dd-yyyy" )
// On IE: 距离1970年1月1日的毫秒数
// On Mozilla: NaN"
c.Date.parse( "MM/dd/yyyy" )
Date.parse( "yyyy/MM/dd" )
// On IE and Mozilla: 距离1970年1月1日的毫秒数
三:C#中DateTime
1. 本周
(要知道本周的第一天就得先知道今天是星期几,从而得知本周的第一天就是几天前的那一天,要注意的是这里的每一周是从周日始至周六止 )
DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
2. 本月
(,本月的第一天肯定是1号,最后一天就是下个月一号再减一天)
DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1"; //第一天
DateTime.Parse(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1").AddMonths(1).AddDays(-1).ToShortDateString();//最后一天
//巧用C#里ToString的字符格式化更简便
DateTime.Now.ToString("yyyy-MM-01");
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();
3. 本季度
(很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月 )
//首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了
DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
//同理,本季度的最后一天就是下季度的第一天减一
DateTime.Parse(DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
4. 本年度
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();
5. 各种格式
a. 用DateTime类的.toString(""yyyy-MM-dd""),
b. 用String类转换日期显示格式: String.Format("yyyy-MM-dd",yourDateTime);
但是,如果你的电脑里的"区域和语言设置"选项选中的是简体中文,那么你用toString(""yyyy/MM/dd"")来格式化2008-09-09时,会发现它根本不起作用!
这到底是为什么呢?原因就是在当前Culture(zh-CN)下,DateTime的DateSeparator是-而不是/. 这时我们在方法tostring里多加一个参数:System.Globalization.DateTimeFormatInfo.InvariantInfo,系统就会完全按照自定义格式来输出了!
c. DateTime dt = new DateTime(yyyy, M, d, H,m, s);//yyyy-MM-dd HH:mm:ss
String.Format("{0:y yy yyy yyyy}", dt); // "8 08 008 2008" year
String.Format("{0:M MM MMM MMMM}", dt); // "3 03 Mar March" month
String.Format("{0:d dd ddd dddd}", dt); // "9 09 Sun Sunday" day
String.Format("{0:h hh H HH}", dt); // "4 04 16 16" hour 12/24
String.Format("{0:m mm}", dt); // "5 05" minute
String.Format("{0:s ss}", dt); // "7 07" second
String.Format("{0:f ff fff ffff}", dt); // "1 12 123 1230" sec.fraction
String.Format("{0:F FF FFF FFFF}", dt); // "1 12 123 123" without zeroes
String.Format("{0:t tt}", dt); // "P PM" A.M. or P.M.
String.Format("{0:z zz zzz}", dt); // "-6 -06 -06:00" time zone
6.
注:
GMT 是“Greenwich Mean Time”的缩写,中文叫“格林威治标准时间”,是英国的标准时间,也是世界各地时间的参考标准。中英两国的标准时差为8个小时,即英国的当地时间比中国的北京时间晚8小时。
BST 是“British Summer Time”的缩写,即“英国夏时制”比GMT快一小时,每年从三月底开始,到十月底结束。夏时制期间,中英两国的时差为7小时。