Преобразование временных меток снежинки

#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. Я понимаю. Большое спасибо!