Вероятно, что-то происходит с часовыми поясами.
Этот сценарий был запущен в Испании
var moment = require('moment'); // This is because I've tested it in a nodejs environment
var scandate = '2018-09';
var result = moment(scandate);
console.log(moment(result).format('YYYY-MM-DD'))
Выходы 2018-09-01
Мы могли обойти это, инициализировав frame.scandate
следующим образом:
frame.scandate = moment.utc('2018-09-01T00:00:00.000Z');
С moment.utc()
вместо просто moment()
ожидаемые результаты удовлетворяются.
Поддержка платформы объекта только подмножество sql доступной функциональности (частично, чтобы остаться совместимым по диапазону поставщиков). Однако даже LINQ-SQL (который поддерживает намного больше ОПРЕДЕЛЕННЫХ ДЛЯ SQL SERVER конструкций, таких как UDFs) не поддерживает полнотекстовый AFAIK.
Я полагаю, что необходимо использовать хранимую процедуру / udf. Подход UDF предпочтен, поскольку слой метаданных намного более силен, и это компонуемо в сервере дб - однако, Платформа Объекта не делает (или не сделал, в прошлый раз, когда я проверил) как UDFs;-p, Таким образом, Вам, вероятно, придется использовать хранимую процедуру.