1. 程式人生 > >sql將毫秒數字轉換為日期

sql將毫秒數字轉換為日期

例如某個欄位的毫秒數為:1345626941701

轉換函式:select dateadd(s, 1345626941701/1000 ,'1970-1-1 08:00:00')

即用 毫秒數/1000 即可。

對於欄位:col/1000再用上面的函式即可

對於oracle麻煩點:

select to_date('1970-01-01 08:00:00','yyyy-MM-dd HH24:MI:SS')+(1345626941701/86400000 - 1/86400) from dual;

------------

在開發過程中,為了方便,經常將時間日期的毫秒數以整形的格式存到資料庫中,雖然方便了不同地方的處理,但也會增加些麻煩。比如,我要到資料庫裡直接看某個時間的值,都是一長串的數字,鬼都看不懂,想到看到該欄位的值,還要寫個轉換程式,把毫秒數在轉換成日期時間型別,或者拿個計算器來算。要檢視的記錄少,還能將就,如果多了,那不崩潰才怪呢。於是想到了在SQL裡直接轉換的方法,還好牛人多,在網上搜了一下,還真有相關的東西,原始的語句如下:

SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') CURRENT_DATE, (SYSDATE- TO_DATE('1970-01-01','YYYY-MM-DD')) * 86400000 CURRENT_MILLI FROM DUAL;

這只是個例子,還不能直接解決上面的問題,所有就改了一下,是以自定義函式的形式存在的,程式碼如下:

CREATE OR REPLACE FUNCTION DATELONG2TEXT (PARAM IN LONG) RETURN VARCHAR2 AS
V_TEXT VARCHAR2(64);
BEGIN
SELECT TO_CHAR(TO_DATE('1970-01-01', 'YYYY-MM-DD')+(PARAM/(24*60*60*1000) + 8/24 - 1/86400),'YYYY-MM-DD HH24:MI:SS') INTO V_TEXT FROM DUAL;
RETURN V_TEXT;
END DATELONG2TEXT;

使用示例:

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'),SYSDATE,DATELONG2TEXT((SYSDATE - 8 / 24 - TO_DATE('1970-01-01', 'YYYY-MM-DD')) * 86400000) FROM DUAL;

說明:

1、加上 8/24 ,是因為時間格式是GMT,結果會受時區的影響,我們在東8區,所以要加上8個小時 ;

2、減1/86400,至於為什麼,我也說不清楚,只是在實際當中確實多了1秒,只好以這種方式減去了,根據時間情況確定是否進行調整。

當然,我們也可以類似的寫出將日期由字串轉換成毫秒數的函式。

相關推薦

sql毫秒數字轉換日期

例如某個欄位的毫秒數為:1345626941701 轉換函式:select dateadd(s, 1345626941701/1000 ,'1970-1-1 08:00:00') 即用 毫秒數/1000 即可。 對於欄位:col/1000再用上面的函式即可 對於oracle麻煩點: select to_d

sql阿拉伯數字轉換中文數字,MySQL數字轉大寫

CREATE FUNCTION `mathToChar`(`str` INT) RETURNS VARCHAR(100) character set gbk BEGIN DECLARE str1 VARCHAR(1) character set gbk DEFAULT '

學以致用——使用VBA函式十進位制數字轉換字母(二十六進位制)(Convert a number to letters (Excel Column number to name))

利用空閒時間,開發了一個十進位制轉換為字母(相當於26進位制)的函式。功能有:1. 給定Excel列標,返回對應的列名(如,第677列對應的列名為“ZA”)(但是,Excel中的列最多為16384列,對應的列名為XFD)2. 給定任意正長整形數值(即,1到2147483647

js時間戳轉換日期以及js Date物件的一些方法

示例: 前臺獲取到一個時間戳 1505813515 想把這個時間戳轉換為日期格式顯示 var date = 1505813515; var unixTimestamp = new Date(date); var start = unixTimestamp.toLocaleDat

【iOS開發系列】阿拉伯數字轉換中文數字

/** * 將阿拉伯數字轉換為中文數字 */ +(NSString *)translationArabicNum:(NSInteger)arabicNum { NSString *arabicNumStr = [NSString stringWithForma

JS時間戳轉換日期時間格式

最近專案需要在前端將一個13位的時間戳顯示成日期格式,在網上查了很多都不符合要求,只有一個是能滿足要求的,在這記錄一下,說不定以後還用的著。 13位時間戳改為yyyy-MM-dd HH-mm-ss 格式 目標時間戳:1516324500000

日期轉換成json以後會變成一串數字,如何把數字轉換日期

java中 package com.amssy.controller; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; public class Te

阿拉伯數字轉換羅馬數字

  昨天,寫了一個將羅馬數字轉換成阿拉伯數字的過程,今天來寫一個反過程吧,將阿拉伯數字轉化成羅馬字串實現原理很簡單,一看就能明白的,將數字先拆分成一個一個的小於10的數字,然後在各自轉換則可。

JS數字轉換中文

var cti IT function script val else AR -c <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title

SQL 時間戳轉換日期

sta timestamp spa col eight 時間戳轉換 bold pre mes DATEADD(s, Timestamp + 8*3600, ‘1970-01-01 00:00:00‘) 其中Timestamp為10位的時間戳SQL 時間戳轉換為日期

Sql Server 中由數字轉換指定長度的字符串

col str 函數 mss tmp 增長 數字 select 數據類型 一個列的數據類型是 int ,從 1 開始自動增長,另一個列是字符串,現在想把 int 列轉換成 九個字符,比如 1 轉換後就是 000000001 ,添到字符串列,怎麽實現呢? set @imaxU

使用ParseExact方法字串轉換日期格式

實現效果: 知識運用:    DateTime結構的ParseExact方法     public static DateTime ParseExact(string s,string format,IFormatProvider provider);   實現程式碼:

Java 小程式 之輸入的數字轉換金額輸出

import java.text.DecimalFormat; import java.util.Scanner; import javax.swing.JOptionPane; public class ConvertMoney { // 大寫數字 private fina

R語言資料框中的字元型別數字轉換數值

場景1 我現在有一個數據框datexpr,裡面的數字都是以字元型表示的,像這樣 > datexpr[1,1] [1] " 1.143773961" 現在我想把這個資料框中的字元型數字全部轉為數值型數字 使用下面語句即可 datexpr2=as.data.fra

當需要輸入較長的整數,int型別又不夠長時(如何字元型別數字轉換int型別)

1.將需要輸入的長整數以字串型別存入; 2.將整數放入陣列; 3.進行其他操作; public static void main(String[] args) { Scanner a=new Scanner(System.in); String input= a.nextLin

python中,如何字串轉換數字數字轉換整型),字串的10轉換整型的10,10.5轉換10

說明:   在實際的應用過程中,有的時候可能會遇到字串的10,需要將字串的10轉換為數字的10   在此記錄下,通過int函式轉換的過程。 操作過程: 1.將字串轉換為整型的10 >>> str1 = "10" #將一個字串的10賦給變數str1 >&g

用java一個int數字轉換指定位數二進位制的字串形式

/** * 將一個int數字轉換為二進位制的字串形式。 * @param num 需要轉換的int型別資料 * @param digits 要轉換的二進位制位數,位

python 批量列表元素轉換數字

原文連結:https://www.jb51.net/article/86561.htm 本文例項講述了Python中列表元素轉為數字的方法。分享給大家供大家參考,具體如下: 有一個數字字元的列表: 1 numbers = ['1', '5', '1

Word 用 VBA 函式數字轉換大寫金額

'自定義函式 NTDX 將數字金額轉換為財務要求的大寫金額(NTDX:Number To DaXie) Public Function NTDX(A As Variant) Set Excel = CreateObject("excel.Applicat

opencv int型別數字轉換固定長度的字串cv::format

int currentFrame = 2;stringstream frame_name;frame_name << cv::format("%.3d",currentFrame) << ".jpg";或者:String save_frame_path