alasql
Version:
AlaSQL.js - JavaScript SQL database library for relational and graph data manipulation with support of localStorage, IndexedDB, and Excel
101 lines (78 loc) • 2.06 kB
JavaScript
//
// Date functions
//
// (c) 2014, Andrey Gershun
//
/** Standard JavaScript data types */
alasql.fn.Date = Object;
alasql.fn.Date = Date;
alasql.fn.Number = Number;
alasql.fn.String = String;
alasql.fn.Boolean = Boolean;
/** Extend Object with properties */
stdfn.EXTEND = alasql.utils.extend;
stdfn.CHAR = String.fromCharCode.bind(String);
stdfn.ASCII = function(a) {
return a.charCodeAt(0);
};
/**
Return first non-null argument
See https://msdn.microsoft.com/en-us/library/ms190349.aspx
*/
stdfn.COALESCE = function() {
for(var i=0;i<arguments.length;i++) {
if(typeof arguments[i] == 'undefined') continue;
if(typeof arguments[i] == "number" && isNaN(arguments[i]) ) continue;
return arguments[i];
}
return undefined;
}
stdfn.OBJECT_ID = function(objid){
return !!alasql.tables[objid];
};
stdfn.DATE = function (d) {
if(/\d{8}/.test(d)) return new Date(+d.substr(0,4),+d.substr(4,2)-1,+d.substr(6,2));
return new Date(d);
};
stdfn.NOW = function(){
var d = new Date();
var s = d.getFullYear()+"."+("0"+(d.getMonth()+1)).substr(-2)+"."+("0"+d.getDate()).substr(-2);
s += " "+("0"+d.getHours()).substr(-2)+":"+("0"+d.getMinutes()).substr(-2)+":"+("0"+d.getSeconds()).substr(-2);
s += '.'+("00"+d.getMilliseconds()).substr(-3)
return s;
};
stdfn.GETDATE = stdfn.NOW;
stdfn.CURRENT_TIMESTAMP = stdfn.NOW;
// stdfn.GETDATE = function(){
// var d = new Date();
// var s = d.getFullYear()+"."+("0"+(d.getMonth()+1)).substr(-2)+"."+("0"+d.getDate()).substr(-2);
// return s;
// }
stdfn.SECOND = function(d){
d = new Date(d);
return d.getSeconds();
};
stdfn.MINUTE = function(d){
d = new Date(d);
return d.getMinutes();
};
stdfn.HOUR = function(d){
d = new Date(d);
return d.getHours();
};
stdfn.DAYOFWEEK = stdfn.WEEKDAY = function(d){
d = new Date(d);
return d.getDay();
};
stdfn.DAY = stdfn.DAYOFMONTH = function(d){
d = new Date(d);
return d.getDate();
};
stdfn.MONTH = function(d){
d = new Date(d);
return d.getMonth()+1;
};
stdfn.YEAR = function(d){
d = new Date(d);
return d.getFullYear();
};