Date
SQL
Технические вопросы
7.x

Запрос Javascript Дата между

esq = Ext.create("Terrasoft.EntitySchemaQuery", {
                                                                rootSchemaName: "CurrencyRate"
                                                        });
                                                        esq.addColumn("Rate");
                                                        //var startDate = esq.addColumn('StartDate');
                                                        //startDate.orderDirection = Terrasoft.OrderDirection.DESC;
                                                       
                                                        var yesterday = new Date();
                                                        var tomorrow = new Date();
                                                        yesterday.setDate(tomorrow.getDate() - 1);
                                                        tomorrow.setDate(tomorrow.getDate() + 1);
                                                       
                                                        esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(
                                                                        this.Terrasoft.ComparisonType.EQUAL, "Currency", this.get("LogCurrencyRow").value));
                                                        esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(
                                                                        this.Terrasoft.ComparisonType.GREATER, "Startdate", yesterday));
                                                        esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(
                                                                        this.Terrasoft.ComparisonType.LESS, "Startdate", tomorrow));

                                                        esq.getEntityCollection(function(response) {
                                                                if (response.success) {
                                                                        response.collection.each(function(item) {
                                                                                CurrencyRate = item.get("Rate");
                                                                        }, this);
                                                                }
                                                                else if (CurrencyRate === 0)
                                                                {

Не могу разобраться с датой. Без даты работает.
Что не так?
Помогите пож-та.

Нравится

5 комментариев

"Юсупов Марат" написал:esq.addColumn('StartDate');

"Юсупов Марат" написал:this.Terrasoft.ComparisonType.GREATER, "Startdate", yesterday))

Так StartDate или Startdate? А вообще, хотелось бы увидеть скрин консоли с ошибкой)

Также обратите внимание, что в переменную yesterday и tomorrow попадёт текущее время: [javascript]
yesterday
Sun Mar 19 2017 16:14:13 GMT+0300 (RTZ 2 (зима))
tomorrow
Tue Mar 21 2017 16:14:13 GMT+0300 (RTZ 2 (зима))
[/javascript]
Для "чистоты" запроса можно его подправить:
[javascript]
yesterday = Terrasoft.startOfDay(yesterday)
Sun Mar 19 2017 00:00:00 GMT+0300 (RTZ 2 (зима))
tomorrow = Terrasoft.endOfDay(tomorrow)
Tue Mar 21 2017 23:59:59 GMT+0300 (RTZ 2 (зима))
[/javascript]

Данила, спасибо.
Привыкнуть не могу что регистр важен.
Заработало, спасибо.
[javascript]
var LogCurrencyUpper = this.get("LogCurrencyRow"); //.value; toUpperCase()

esq = Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "CurrencyRate"
});
esq.addColumn("Rate");
var yesterday = new Date();
yesterday = Terrasoft.startOfDay(yesterday)
var today = new Date();
today = Terrasoft.endOfDay(today)

esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL, "Currency", this.get("LogCurrencyRow").value));
esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.GREATER, "StartDate", yesterday));
esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.LESS, "StartDate", today));

esq.getEntityCollection(function(response) {
if (response.success) {
response.collection.each(function(item) {
CurrencyRate = item.get("Rate");
}, this);
}
else if (CurrencyRate === 0)
{
//код
}
[/javascript]

Спасибо еще раз. :smile:

Чтото перестало работать
ошибка в консоли
[javascript]
Error while sending request
response status: 500 (FormatException)
request url: ../DataService/json/SyncReply/SelectQuery
method: POST
request data: {"rootSchemaName":"CurrencyRate","operationType":0,"filters":{"items":{"b5859fc2-36c6-4b78-a147-1a8f8cbff7cd":{"filterType":1,"comparisonType":3,"isEn...
[/javascript]

[javascript]
var _tomorrow = new Date();
_tomorrow.setDate(_tomorrow.getDate() + 1);
var _yesterday = new Date();
_yesterday.setDate(_yesterday.getDate() - 1);

_tomorrow = Terrasoft.endOfDay(_tomorrow);
_yesterday = Terrasoft.startOfDay(_yesterday);

esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL, "Currency", LogCurrencyRow));
esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.GREATER, "StartDate", _yesterday));
esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.LESS, "StartDate", _tomorrow));

esq.getEntityCollection(function(response) {

}

else
{
}
[/javascript]

Интересная вещь в хроме время нормальное показывает, а в файрфоксе по гринвичу.
Данный главное есть.

Id CreatedOn CreatedById ModifiedOn ModifiedById StartDate EndDate CurrencyId Rate ProcessListeners RateMantissa
906BD40D-2955-4E62-9F84-44B46CB6F5BF 2017-03-22 10:08:54.057 NULL 2017-03-22 10:08:54.057 NULL 2017-03-22 NULL C0057119-53E6-DF11-971B-001D60E938C6 62.2699 0

Еще нашел такое у responce
[javascript]
В "{0}" ожидалось шестнадцатеричное значение 0x.
[/javascript]

Нашел свой косяк.
[javascript]
esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL, "Currency", LogCurrencyRow.value));
[/javascript]

Показать все комментарии