oracle Javascript日期到SQL日期对象

whhtz7ly  于 2022-12-22  发布在  Oracle
关注(0)|答案(5)|浏览(99)

我正在尝试编写一个查询,该查询接受Javascript日期对象,然后将其放入SQL Server和Oracle数据库类型都能识别的对象类型中。
问题是我使用的是Web服务,所以它必须是一个字符串,而不是一个实际传递的参数,我的意思是:

var date = new Date();
var firstDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDayOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0);

var webServicesQueryWhereClause = 'readDate BETWEEN '+firstDayOfMonth+' AND '+lastDayOfMonth;

除了firstDayOfMonthlastDayOfMonth被类似to_date()的内容包围,以便实际上将它们转换为数据库可以读取的日期格式。

var webServicesQueryWhereClause = 'readDate BETWEEN to_date('+firstDayOfMonth+') AND to_date('+lastDayOfMonth+') ';

我应该使用什么来将这些日期放入SQL Server和Oracle都可以读取的格式中?

doinxwow

doinxwow1#

您是否尝试过以下解决方案:
Convert JS date time to MySQL datetime
标题应该叫做
“将JS日期转换为SQL日期时间”
我碰巧需要做和你刚才一样的事情,在你提问后我偶然发现了这个。
这是从Gajus Kuizinas为那些谁想要在这个页面上的答案的其他职位:

var pad = function(num) { return ('00'+num).slice(-2) };
var date;
date = new Date();
date = date.getUTCFullYear()         + '-' +
        pad(date.getUTCMonth() + 1)  + '-' +
        pad(date.getUTCDate())       + ' ' +
        pad(date.getUTCHours())      + ':' +
        pad(date.getUTCMinutes())    + ':' +
        pad(date.getUTCSeconds());

new Date().toISOString().slice(0, 19).replace('T', ' ');

第一个对我很有效。我也有一个toISOString的引用问题,尽管我更喜欢一个liner。有人能澄清如何使用它,并知道在哪里可以引用它的限制吗?祝你好运!

vzgqcmou

vzgqcmou2#

使用MomentJs将非常容易。

moment().format('YYYY-MM-DD HH:mm:ss')

https://momentjs.com/

vh0rcniy

vh0rcniy3#

在我的例子中,我尝试获取一个TIMESTAMP并将其存储到一个变量中,以便可以在SQL查询中传递该数组(行插入)
下面的方法对我来说效果很好。

var created_at = new Date().toISOString().slice(0, 19).replace('T', ' ');
sg3maiej

sg3maiej4#

也许我发现了一个更短的方法-在MSSQL和Postgres上测试

const date = (new Date()).toLocaleString("en-US")

好好享受吧!

bwleehnv

bwleehnv5#

我用途:

const datetimeSQL = new Date().toISOString().split('T').join(' ').split('Z').join('');
// return '2022-09-02 19:54:17.028'

相关问题