#snowflake-cloud-data-platform
Вопрос:
Следующий код дает мне значение Пт 06 августа 2021 года 12:16:27 GMT-0700 (Тихоокеанское летнее время) вместо мм/дд/гггг чч:мм:сс. Что я здесь упускаю? Пожалуйста, посоветуйте
create or replace procedure Load_Employee()
returns varchar not null
language javascript
EXECUTE AS CALLER
as
$
//Variable Initialization
var IntegrationTable ='EMPLOYEE';
var TypeID=0;
var MaxDate=' ';
var cmd = "Select max(COMPLETED_DATE) from SCHEMA.TABLE where TARGET_TABLE_NAME= " "'" IntegrationTable "'" ;
var sql = snowflake.createStatement({sqlText: cmd});
var result = sql.execute();
result.next();
MaxDate=result.getColumnValue(1);
return MaxDate;
$
;
Комментарии:
1. Именно так JavaScript будет отображать переменную даты, если она используется в качестве строки. Ты можешь
Ответ №1:
Вот как JavaScript будет отображать дату, если она представлена в виде строки. Вы можете перейти на ГГГГ-ММ-ДД вот так:
create or replace procedure Load_Employee()
returns varchar not null
language javascript
EXECUTE AS CALLER
as
$
//Variable Initialization
var IntegrationTable ='EMPLOYEE';
var TypeID=0;
var MaxDate=' ';
var cmd = "Select max(COMPLETED_DATE) from SCHEMA.TABLE where TARGET_TABLE_NAME= " "'" IntegrationTable "'" ;
var sql = snowflake.createStatement({sqlText: cmd});
var result = sql.execute();
result.next();
MaxDate=formatDate(result.getColumnValue(1));
return MaxDate;
// Helper functions
function formatDate(date) {
var d = new Date(date),
month = '' (d.getMonth() 1),
day = '' d.getDate(),
hour = '' d.getHours(),
minute = '' d.getMinutes(),
second = '' d.getSeconds(),
year = d.getFullYear();
if (month.length < 2) month = '0' month;
if (day.length < 2) day = '0' day;
if (hour.length < 2) hour = "0" hour;
if (minute.length < 2) minute = "0" minute;
if (second.length < 2) second = "0" second;
return [month, day, year].join('/') " " [hour,minute,second].join(':');
}
$
;
Комментарии:
1. Спасибо за обновление, но как мне передать значение из этой функции в Maxdate, чтобы сделать Maxdate как мм/дд/гггг чч:мм:сс?
2. Вы можете просто изменить порядок строки соединения и в той же строке изменить символ разделителя с «-» на «/». Я изменил его в ответе.
3. Извините, я имел в виду, как передать выходные данные функции в мою переменную Maxdate?
4. Это уже сделано на этой линии
MaxDate=formatDate(result.getColumnValue(1));
5. Я понимаю. Большое спасибо!