转换为hive,V_START_TIME := current_timestamp();
时间: 2024-04-12 07:29:09 浏览: 23
在Hive中,没有类似PL/SQL的变量赋值语句。如果您想记录当前时间,您可以使用Hive的内置函数来获取当前时间戳。以下是将V_START_TIME := current_timestamp(); 转换为Hive的修改建议:
```sql
SET hivevar:start_time=current_timestamp();
-- 示例用法:
INSERT INTO JOB_TIME_REC VALUES ('jyfx_HOUR', '2023-07-12 00:00:00', ${start_time}, unix_timestamp(current_timestamp()) - unix_timestamp('2023-07-12 00:00:00'), '受理');
```
在这里,我们使用`SET hivevar:start_time=current_timestamp();`将当前时间戳存储在Hive变量`${start_time}`中。然后,您可以在后续的Hive语句中引用`${start_time}`来使用该值。
请注意,在Hive中,您需要使用`${}`语法来引用变量,并且Hive变量的名称需要以`hivevar:`前缀开头。
相关问题
转换为hive, STR_SQL:=' INSERT INTO jyfx_PRODUCT_ACCEPT_2022 SELECT A.obj_id,null,A.apply_obj_spec,null,A.create_date,A.region_id, A.create_ORG_ID,sysdAte,null,A.cust_order_id, A.ORDER_item_id,null,null,null, A.BELONG_lan_id,create_staff FROM ord_so.order_item@to_CRM_TEST A WHERE A.order_item_cd = ''1300'' and A.status_cd in (''301200'',''201300'') AND to_char(A.create_date,''yyyymmdd'') >= to_char(sysdate-35,''yyyymmdd'') AND A.SERVICE_OFFER_ID=4010100000 '; EXECUTE IMMEDIATE STR_SQL; --执行了一个名为STR_SQL的动态SQL语句。 COMMIT; --提交了之前的事务 INSERT INTO JOB_TIME_REC VALUES('jyfx_HOUR',V_START_TIME,SYSDATE, (SYSDATE-V_START_TIME)*24*3600,'受理'); --将一条记录插入到JOB_TIME_REC表中,包括了'jyfx_HOUR'、V_START_TIME、SYSDATE、(SYSDATE-V_START_TIME)243600和'受理'这些值。 COMMIT; --提交这次插入操作的事务 V_START_TIME:=SYSDATE;--将V_START_TIME的值更新为当前的系统时间
以下是将给定的脚本转换为Hive SQL的结果:
```sql
INSERT INTO jyfx_PRODUCT_ACCEPT_2022
SELECT A.obj_id, NULL, A.apply_obj_spec, NULL, A.create_date, A.region_id, A.create_ORG_ID, current_date, NULL, A.cust_order_id, A.ORDER_item_id, NULL, NULL, NULL, A.BELONG_lan_id, create_staff
FROM ord_so.order_item A
WHERE A.order_item_cd = '1300' and A.status_cd IN ('301200', '201300')
AND from_unixtime(unix_timestamp(A.create_date, 'yyyyMMdd'), 'yyyyMMdd') >= from_unixtime(unix_timestamp(current_date - INTERVAL 35 DAY), 'yyyyMMdd')
AND A.SERVICE_OFFER_ID = 4010100000;
INSERT INTO JOB_TIME_REC VALUES ('jyfx_HOUR', '2023-07-12 00:00:00', current_timestamp(), unix_timestamp(current_timestamp()) - unix_timestamp('2023-07-12 00:00:00'), '受理');
V_START_TIME := current_timestamp();
COMMIT;
```
请注意,Hive不支持动态SQL语句的执行(EXECUTE IMMEDIATE),因此您需要手动将其分解为适当的Hive语句。此外,Hive中没有类似PL/SQL的变量赋值语句(V_START_TIME := SYSDATE),因此您需要根据实际需要进行调整。最后,Hive不支持直接使用TO_CHAR函数,而是使用from_unixtime和unix_timestamp函数来进行日期格式转换。
hive current_timestamp()参数
Hive中的current_timestamp()函数返回当前系统时间的时间戳。该函数不需要任何参数。例如,可以使用以下语句获取当前时间戳:
```
SELECT current_timestamp();
```
该语句将返回一个时间戳,例如:2021-07-15 13:32:45.123。可以在Hive中使用该函数来记录数据的更新时间或插入时间。例如,可以使用以下语句创建一个包含更新时间戳的表:
```
CREATE TABLE my_table (
id INT,
name STRING,
updated_at TIMESTAMP DEFAULT current_timestamp()
);
```
在插入数据时,如果不指定updated_at列的值,则该列将使用当前时间戳自动进行填充。例如:
```
INSERT INTO my_table (id, name) VALUES (1, 'John');
```
该语句将插入一个记录,其中updated_at列的值将是当前时间戳。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)