hive/spark sql中unix_timestamp 函數的坑以及時間戳相關的轉換

我用的是hive版本是3.1.3,spark版本是3.3.1,它們的unix_timestamp 函數在同樣的語句下轉換出來的時間戳是完全不同的,如下試驗所示

1.unix_timestamp 函數的坑

在這里插入圖片描述
上圖試驗中我同樣的計算 2025-07-11 10:00:00 時間點對應的時間戳,但是盡管在我換了時區的情況下,他們得到的是同一個答案,都是 1752228000 ,沒錯,這個時間戳就是UTC+0時間下的對應2025-07-11 10:00:00的時間戳,這點就有點坑,因為我們變化了時區,肯定是想要它轉成對應時區下的時間戳。
spark
在spark-sql中是會根據所給的時間戳改變的,這里有一個細節,特別需要注意,spark.sql.session.timeZone Zone一定要大寫,如果小寫的話,就會跟hive一樣達不到隨著時間戳改變而變化

2. 時間戳和對應時區的時間之間的轉換

首先需要明確的一點是時間戳的定義:它是指從自"Unix紀元"(1970-01-01 00:00:00 UTC)以來經過的秒數或毫秒數 所有它是一個絕對值,不會應為時區的變化而變化,而時區是指全球各個地區自己定義一天時間的方法。

基于上面對時間戳和時區概念的理解,我們提出一個結論,給定一個時間戳比如 1752163200 ,它是絕對的,也是不會變化的,根據這個時間戳,然后各地區根據自己所在的時區可以解析出不同的時間,比如,它表示 Asia/Shanghai(UTC+8) 時區的 2025-07-11 00:00:00 ,同時也表示Asia/Seoul(UTC+9) 時區的2025-07-11 01:00:00,同時也表示America/New_York(UTC-4)2025-07-10 12:00:00時區的等等
這是時間戳轉根據時區轉時間,我們可以明顯看出來在時間戳轉時間的時候,如果知道了一個轉的結果,比如知道 Asia/Shanghai(UTC+8) 轉出來的時間是 2025-07-11 00:00:00 ,那對應的 America/New_York(UTC-4) 的時間不用再用時間戳轉,直接用目標時區的值(-4)減去前面基礎時區的值(+8),得到-12(-4-8=-12),最后用基礎時間加上前面計算出來的值就可以了,也就是2025-07-11 00:00:00加上-12個小時也就是2025-07-10 12:00:00。
如果是時間轉時間戳的時候,就正好相反,用基礎時區的值減去目標時區的值(由于這是時間戳計算,最后需要進行6060處理),然后和對基礎時區轉出來的時間戳做加法(減出來是負數就是減)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/89022.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/89022.shtml
英文地址,請注明出處:http://en.pswp.cn/web/89022.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MyBatis專欄介紹

專欄導讀 在當今的軟件開發領域,持久層框架的選擇對于提高開發效率和數據處理能力至關重要。MyBatis作為一個半自動化的ORM框架,因其靈活、高效的特點,在眾多開發者中廣受好評。本專欄《MyBatis實戰》旨在通過深入淺出的方式,幫助…

HarmonyOS從入門到精通:自定義組件開發指南(七):自定義事件與回調

HarmonyOS從入門到精通:自定義組件開發指南(七):自定義事件與回調 在HarmonyOS應用開發中,組件化架構是構建復雜界面的基礎,而組件間的高效通信則是實現業務邏輯的核心。自定義事件與回調機制作為組件交互的…

C++編程學習(第七天)

基于過程的程序設計C既可以用來進行基于過程的程序設計,又可以用來進行面向對象的程序設計。基于過程的程序設計又稱為過程化的程序設計,它的特點是:程序必須告訴計算機應當具體怎么做,也就是要給出計算機全部操作的具體過程&…

ubuntu透網方案

場景:兩個linux/Ubuntu系統,一個可以上網,一個不能,讓不能上網的,讓能上網的共享網絡 步驟 1:修改 /etc/sysctl.conf sudo nano /etc/sysctl.conf 找到或添加以下行: net.ipv4.ip_forward1 按 CtrlO 保存&a…

基于Python的物聯網崗位爬取與可視化系統的設計與實現【海量數據、全網崗位可換】

文章目錄有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主項目介紹數據采集數據預處理系統展示總結每文一語有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主 項目介紹 隨著物聯網技術的迅速發展,物聯網行業…

線性回歸原理推導與應用(十):邏輯回歸多分類實戰

本篇文章將利用sklearn中內置的鳶尾花數據進行邏輯回歸建模并對鳶尾花進行分類。對于邏輯回歸和線性回歸的相關原理,可以查看之前的文章 數據導入 鳶尾花數據是機器學習里的常用數據,首先導入一些基礎庫并從sklearn中導入數據集 #導入用到的一些pytho…

Docker 部署emberstack/sftp 鏡像

Docker 部署 emberstack/sftp 鏡像 1、找到國內可用的docker源,本次測試使用docker.1ms.run 2、下載emberstack/sftp鏡像docker pull docker.1ms.run/emberstack/sftp3、安裝并啟動emberstack/sftp鏡像docker run -d -p 22:22 --name SFTP -v D:\SFTP:/home/sftpuser/sftp --pr…

【華為OD】MVP爭奪戰2(C++、Java、Python)

文章目錄題目題目描述輸入描述輸出描述示例思路核心思路:關鍵觀察:算法步驟:排序策略:特殊情況處理:代碼CJavaPython復雜度分析時間復雜度空間復雜度結果總結題目 題目描述 給定一個整型數組,請從該數組中…

Python打卡訓練營Day58

DAY 58 經典時序預測模型2知識點回顧:時序建模的流程時序任務經典單變量數據集ARIMA(p,d,q)模型實戰SARIMA摘要圖的理解處理不平穩的2種差分n階差分---處理趨勢季節性差分---處理季節性建立一個ARIMA模型,通…

003大模型基礎知識

大模型分類: 技術架構: Encoder Only Bert Decoder Only 著名的大模型都是 Encoder - Decoder T5 是否開源: 開源陣營: Llama DeepSeek Qwen 閉源陣營: ChatGpt Gemini Claude 語言模型發展階段&am…

JVM監控及診斷工具-GUI篇

19.1. 工具概述 使用上一章命令行工具或組合能幫您獲取目標Java應用性能相關的基礎信息,但它們存在下列局限: 1.無法獲取方法級別的分析數據,如方法間的調用關系、各方法的調用次數和調用時間等(這對定位應用性能瓶頸…

適用于Windows系統截圖工具

1.Faststone Capture 官網網址:https://faststone-capture.com/ 網上很多注冊碼:https://www.cnblogs.com/LiuYanYGZ/p/16839503.html 2.Snipaste 官網網址:https://apps.microsoft.com/detail/9p1wxpkb68kx?launchtrue&modefull&…

區塊鏈的三種共識機制——PoW、PoS和DPoS原理

區塊鏈的核心是去中心化網絡的信任機制,而共識機制是實現這一目標的關鍵。共識機制可分為兩個階段:(1)提出共識內容(2)對內容達成共識(遵循最長鏈原則)。三種主流的共識機制主要有工…

React 和 Vue的自定義Hooks是如何實現的,如何創建自定義鉤子

目的:將公共邏輯提取出來,類似于 mixin,解決了mixin的設計缺陷。 React 和 Vue 自定義 Hooks 實現對比 React 自定義 Hooks React 的自定義 Hooks 是 JavaScript 函數,它們以 use 開頭,可以調用其他 Hooks。 基本規則 …

構建高效事件驅動架構:AWS S3與SQS集成實踐指南

引言 在現代云架構中,事件驅動的設計模式越來越受到開發者的青睞。AWS S3與SQS的集成為我們提供了一個強大的事件處理機制,能夠在文件上傳、刪除或修改時自動觸發后續的業務邏輯。本文將詳細介紹如何配置S3事件通知到SQS隊列,并分享實際項目中的最佳實踐。 架構概述 S3事…

C++ -- STL-- List

////// 歡迎來到 aramae 的博客,愿 Bug 遠離,好運常伴! ////// 博主的Gitee地址:阿拉美 (aramae) - Gitee.com 時代不會辜負長期主義者,愿每一個努力的人都能達到理想的彼岸。1. list的介紹及使用 2. list的深度剖…

rt-thread 線程間同步方法詳解

rt-thread 線程間同步方法詳解一、什么是線程間同步線程同步的必要性線程同步的挑戰二、同步方式1、信號量信號量工作機制信號量的管理方式信號量的創建與刪除信號量的獲取與釋放信號量的典型應用場景信號量的注意事項2、互斥量互斥量工作機制互斥量的特性互斥量的操作接口互斥…

Spring Boot + Vue2 實現騰訊云 COS 文件上傳:從零搭建分片上傳系統

目錄 一、項目目標 二、騰訊云 COS 基本配置 1. 創建存儲桶 2. 獲取 API 密鑰 3. 設置跨域規則(CORS) 三、后端(Spring Boot)實現 1. 依賴配置 2. 配置騰訊云 COS(application.yml) 3. 初始化 COS…

使用 Java 獲取 PDF 頁面信息(頁數、尺寸、旋轉角度、方向、標簽與邊框)

目錄 引言 一、安裝和引入PDF處理庫 二、獲取 PDF 頁數 三、獲取頁面尺寸(寬高) 四、獲取頁面旋轉角度 五、判斷頁面方向(橫向 / 縱向) 六、獲取頁面標簽 七、獲取頁面邊框信息 八、總結 引言 了解 PDF 頁面屬性是我們在…

基于 AI 的大前端安全態勢感知與應急響應體系建設

大前端應用(Web、APP、小程序)作為用戶交互的入口,面臨日益復雜的安全威脅:從傳統的 XSS 攻擊、CSRF 偽造,到新型的供應鏈投毒、AI 驅動的自動化爬蟲,再到針對業務邏輯的欺詐攻擊(如薅羊毛、賬號…