有关日期的处理 c# 数据库 JS

26 篇文章 0 订阅
19 篇文章 0 订阅

日期处理情形:

1:判断是否是日期格式   比如20202020   月份肯定不能大于12

2:转化日期格式    convert     format

3:比较日期 (求差值,设置差值,部分内容比较,是否相等)  datediff     datepart   datename  dateadd     

 

一:判断是否是日期格式

C#

列如:var newdate="20190101" 

C#可以去  先变成2019-01-01 然后  Convert.ToDateTime(newdate);  转化不成就不是日期

在try catch 中去检测 如果不是就catch里面处理

try
                {
                    var data="20190101" ;
                    var newdate = data.Substring(0, 4) + "-" + data.Substring(4, 2)+"-" + data.Substring(6);
                    DateTime dt = Convert.ToDateTime(newdate);

                    type = yes;
                }
                catch (Exception)
                {

                    type = not;
                }

JS:

var aaa = new Date("2010/8/12");
alert(aaa);成功返回日期失败返回NaN

 

二:格式化日期  

JS:

 已知 字符串yyyyMMdd转到 yyyy-MM-dd

 1:var r="20112233".replace(/^(\d{4})(\d{2})(\d{2})$/, "$1-$2-$3")

 2:substring 截取三段然后在中间加上-

3:使用slice  类似截取 var str = "Hello,world!";var newStr = str.slice(0,5)+'-local'+str.slice(5)  //Hello-local,world!

C#:

如果是正常能识别的日期格式的字符串   convert.todatetime()    datetime.parse() 都可以   如果是19900901这样不是日期格式的字符串    可以使用 DateTime.ParseExact

string  temp = "18991230" ;
DateTime dateTemp = DateTime.ParseExact(temp, "yyyyMMdd", CultureInfo.CurrentCulture, DateTimeStyles.None);

 

最大值
SqlDateTime.MaxValue.Value;  

linq  比较日期 大小
DbFunctions.DiffDays(t.CreatTime.Value, DateTime.Now) == 0

 

数据库:

convert   函数   利用各种

 fromat 自定义  FORMAT(GETDATE(),'yyyy/MM/dd')   想什么格式就转什么格式


三:比较相关

部分:

一般用于看当前时间的年 或 日 datepart (yyyy,getdate())   --2020

datepart (DAYOFYEAR,getdate())   --这个是当前年份过了多少天了  

YEAR函数 是 获取年

YEAR(date) --2020

数据库比较  找到当前时间相同的 年份  或者月份等  DATEPART    DateName
DATEPART(YY,CreateTime)=DateName(year,GetDate())

比较:

JS:
                var endTime = new Date(retDate).getTime() / 1000 - parseInt(new Date(depDate).getTime() / 1000);
                Days = parseInt(endTime / 60 / 60 / 24)+1;        //相差天数

 

C#:

获取当年1月1号  12月31号
new DateTime(DateTime.Now.Year, 1, 1)  
new DateTime(DateTime.Now.Year, 12, 31)  

获取俩个日期的查  秒数

(int)(DateTime.Now - new DateTime(1970, 1, 1)).TotalSeconds;

获取俩个日期的 差值天数

DateTime dt1 = DateTime.Now;

DateTime dt2 = DateTime.Parse("2013-5-30 14:20:45");

TimeSpan ts = dt1 - dt2;

int days=ts.days;

数据库:

数据库更新 某列日期变动  DATEADD  添加

UPDATE 表名 SET h_date = DATEADD(mi,3,h_date)

 

数据库比较俩个日期
DATEDIFF(YEAR,@birthDay,GETDATE())=0

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值