javascript - Suitescript,如何使用 query.Operator.ON 从数据库获取记录的确切日期?

标签 javascript netsuite suitescript suitecloud

我正在尝试使用查询('N/query')获取生日为[day]的记录。我正在寻找使用运算符“Operator.ON”。 但是,我总是从数据库得到空列表。 当我从“Operator.ON”更改为“Operator.ON_AFTER”时,我可以获得结果。

我的日期格式是“D/M/YYYY” 在DB中,记录日期为'1/5/2019'

附上完整的脚本。 请让我知道在准确日期之前获取记录的最佳方法。

 require(['N','N/search','N/record','N/query', 'N/currentRecord', 'N/format']);
    var query = require('N/query');
    var search = require('N/search');
    var currentRecord = require('N/currentRecord');

    var birth = currentRecord.get().getValue({
                fieldId: 'custentity_date_of_birth'
            });

    var customSearch = query.create({
                type: query.Type.CUSTOMER
            });

    var relContact = customSearch.autoJoin({
                fieldId: 'contact'
            });

            customSearch.columns = [
                customSearch.createColumn({
                    fieldId: 'Id'
                }),
                customSearch.createColumn({
                    fieldId: 'firstname'
                }),
                customSearch.createColumn({
                    fieldId: 'lastname'
                }),
                customSearch.createColumn({
                    fieldId: 'email'
                }),
                customSearch.createColumn({
                    fieldId: 'custentity_date_of_birth'
                }),
                relContact.createColumn({
                    fieldId: 'Id'
                })
            ];

    var condFName = customSearch.createCondition({
                fieldId: 'firstname',
                operator: query.Operator.IS,
                values: 'trung'
            });

            var condLName = customSearch.createCondition({
                fieldId: 'lastname',
                operator: query.Operator.IS,
                values: 'null'
            });

            var condBirth = customSearch.createCondition({
                fieldId: 'custentity_date_of_birth',
                operator: query.Operator.ON,
                values: '1/5/2019'
            });

            var condGetBirth = customSearch.createCondition({
                fieldId: 'custentity_date_of_birth',
                operator: query.Operator.EMPTY_NOT
            });

            customSearch.condition = customSearch.and(condFName, condLName, condBirth);

            var sResult = customSearch.run();
            sResult.results

最佳答案

原因是我的应用程序正在使用 GTM+7 在表单中,日期选择器获取日期“1/5/2019”并将该字符串传递给脚本

在后端,Netsuite 获取这一天“1/5/2019”并将其解析为 GTM+7 -> 30/4/2019 并进行数据比较。它永远不会与数据库中的记录“1/5/2019”匹配

我尝试从日期选择器转换日期和时区,但没用。我必须硬编码日期+1 天并传递给条件,然后它可以从数据库获取准确的日期。

关于javascript - Suitescript,如何使用 query.Operator.ON 从数据库获取记录的确切日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56358654/

相关文章:

javascript - 在 Angular 1 中更改正文标签类

netsuite - netsuite沙箱中的"Could not determine customer compid"USER_ERROR

javascript - 如何在 Netsuite Checkout 2.03 中添加销售描述字段

javascript - 如何在 netsuite 中使用 suitescript 2.0 在没有堆栈跟踪的情况下显示自定义错误消息

javascript - 从我的 jQuery 插件中移除延迟

javascript - 如何显示 Highstock 工具提示到二维距离中最近的点?

javascript - 为动态创建的元素触发 click()

javascript - NetSuite SuiteScript 2.0 : Inline HTML document. querySelector() 结果

netsuite - SuiteScript 2.0 与 nlapiXMLToPDF() 等效的是什么

javascript - 如何从行表(在Netsuite中)的库存详细信息列中获取批号?