Работа с Датами¶
Функция TimeParseFormat
currentDate =TimeParseFormat( DBCurrentDateTime(),"2006-01-02 15:04:05","060102")
Функция TimeParseUnix
Время в timestamp-millis с временем с учетом часового пояса
local ts = TimeParseUnix(DBCurrentDateTime().." +06:00","2006-01-02 15:04:05 -07:00")*1000
Дата по умолчанию в AngularJS шаблоне
$scope.detail.doc_at = moment().format("YYYY-MM-DD H:mm:ss");
$scope.date1 = moment().format("YYYY-MM-DD");
$scope.date2 = moment().add(1,'days').format("YYYY-MM-DD");
Преобразование в MySQL
SELECT DATE_FORMAT("2017-06-15", "%d.%m.%Y");
>15.06.2017
SELECT DATE_FORMAT(now(), '%d.%m.%Y %H:%i:%S');
>10.02.1985 02:00:00
Преобразование в PostgreSQL
select to_char(now(), 'dd.MM.YYYY HH24:MI:SS')
>19.02.2021 13:02:06
select to_char(now(), 'YYYY-MM-dd HH24:MI:SS')
>2021-03-06 13:12:36
select TO_DATE('2021-03-06 00:00:00','YYYY-MM-dd HH24:MI:SS')
>2021-03-06
Добавить дни, часы, минуты к текущей дате
update table1 set due_date =
NOW() + make_interval(days=> coalesce(t2.timer_day,0)::int)
+ make_interval(hours=> coalesce(t2.timer_hour,0)::int )
+ make_interval(mins => coalesce(t2.timer_min,0)::int )
from table2 t2
Для вывода строчной даты на русском в postgresql в шаблоне экспорта , например, 10 февраля 1985
Перед вызовом нужно установить lc_time
if os.getenv("CRM_DB_TYPE")=="pgsql" then
SqlExec2([[set lc_time to 'ru_RU.utf8']])
end
Обработать дату в формате 2022-05-11T18:00:00.000Z, добавить часовой пояс, чтобы получилось 2022-05-12
local dbformat = TimeParseFormat("2022-05-11T18:00:00.000Z","2006-01-02T15:04:05.000Z","2006-01-02 15:04:05")
local found,errText,errNum = SqlQueryRow2([[select TO_CHAR(?::timestamp + interval '6' hour,'YYYY.MM.DD') date]],dbformat)
Формула в поле created_at_fmt:
replace( TO_CHAR(main.created_at,'DD TMmonth YYYY'), 'ь','я')
В шаблоне {{(index $item_value.k2extreq_refuse_reg 0 ).created_at_fmt}} г.:
replace( TO_CHAR(main.created_at,'DD TMmonth YYYY'), 'ь','я')
Преобразование в AngularJS
<a class="btn">Format Date {{moment |amDateFormat:"MMMM"}}</a>
Short Date Time Format AngularJS
<div ng-switch-when="due_at" >
{{row[col.alias] | amDateFormat:session_parameters.shortDateTimeFormat}}
</div>
Long Date Time Format AngularJS
<div ng-switch-when="due_at" >
{{row[col.alias] | amDateFormat:session_parameters.longDateTimeFormat}}
</div>
Short Date Format AngularJS
<div ng-switch-when="due_at" >
{{row[col.alias] | amDateFormat:session_parameters.shortDateFormat}}
</div>
Long Date Format AngularJS
<div ng-switch-when="due_at" >
{{row[col.alias] | amDateFormat:session_parameters.longDateFormat}}
</div>
Short Time Format AngularJS
<div ng-switch-when="due_at" >
{{row[col.alias] | amDateFormat:session_parameters.shortTimeFormat}}
</div>