Node.js怎么处理数据库中日期类型

Node.js怎么处理数据库中日期类型,第1张

建议是,数据库中不要用日期类型,用字符型。 java将日期转化成指定的格式的字符串后,再保存到数据库中。 这样,不依赖数据库,也不依赖 *** 作系统。(不同的数据库,不同的 *** 作系统日期表示可能不同。)

代码如下:

//date类型转成string  

<!--        

/**       

* 对Date的扩展,将 Date 转化为指定格式的String       

* 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符       

* 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)       

* eg:       

* (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423       

* (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04       

* (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04       

* (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04       

* (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18       

*/          

//var date = new Date()        

//window.alert(date.pattern("yyyy-MM-dd hh:mm:ss"))     

// -->     

  

Date.prototype.pattern=function(fmt) {           

    var o = {           

    "M+" : this.getMonth()+1, //月份           

    "d+" : this.getDate(), //日           

    "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时           

    "H+" : this.getHours(), //小时           

    "m+" : this.getMinutes(), //分           

    "s+" : this.getSeconds(), //秒           

    "q+" : Math.floor((this.getMonth()+3)/3), //季度           

    "S" : this.getMilliseconds() //毫秒           

    }           

    var week = {           

    "0" : "\u65e5",           

    "1" : "\u4e00",           

    "2" : "\u4e8c",           

    "3" : "\u4e09",           

    "4" : "\u56db",           

    "5" : "\u4e94",           

    "6" : "\u516d"          

    }           

    if(/(y+)/.test(fmt)){           

        fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length))           

    }           

    if(/(E+)/.test(fmt)){           

        fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "\u661f\u671f" : "\u5468") : "")+week[this.getDay()+""])           

    }           

    for(var k in o){           

        if(new RegExp("("+ k +")").test(fmt)){           

            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)))           

        }           

    }           

    return fmt           

}

将日期转换为int类型时间戳,保存到数据库int类型列,推荐使用这种方式

将日期保存到数据库date类型列

把日期直接保存到char/varchar类型列,这种方式是最差的做法,无法比较日期大小,但是可以保存任何格式类型


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9474100.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存