簡體   English   中英

將SQL BigInt轉換為1811011439為日期時間格式

[英]Convert SQL BigInt as 1811011439 to date time format

我的日期時間行看起來像這種格式

1811011439
1811011439
1811011439
1811011439
1811011439
1811011439

它可以這樣讀

Y. 18
M. 11
D. 01 

在你看到的第一行

可以請指導我如何將其轉換為日期可讀格式。

您希望將日期時間值(存儲為bigint)的字符串represantation轉換為可讀格式。 在這種情況下,您可以將字符串/ bigint的日期部分CASTDATE值:

SELECT CAST(LEFT(CAST(1811011439 AS VARCHAR), 6) AS DATE)
-- 2018-11-01

我建議使用DATETIME列而不是BIGINT列來存儲像這樣的值。 使用以下SELECT您將獲得所有DATETIME值:

SELECT CAST(SUBSTRING(CAST(1811011439 AS VARCHAR), 1, 6) + ' ' + SUBSTRING(CAST(1811011439 AS VARCHAR), 7, 2) + ':' + SUBSTRING(CAST(1811011439 AS VARCHAR), 9, 2) AS DATETIME)
-- 2018-11-01 14:39:00.000

據我了解請求,您的VARCHAR格式的日期為'YYMMDDHHmm',因此,最簡單的方法是:

DECLARE @TextDate AS NVARCHAR(20) = '1811011439';
SELECT CAST(SUBSTRING(@TextDate, 1, 6) AS DATE);

或者如果它在一個表中的字段中:

SELECT CAST(SUBSTRING(YourField, 1, 6) AS DATE) FROM YourTable;

我認為你的列不是BIGINT數據類型,它是VARCHAR ,你想從中分割日期

SELECT CAST(LEFT('1811011439', 6) AS DATE)

如果它確實是BIGINT列,只需將其轉換為VARCHAR ,將其拆分,然后將CASTDATE

SELECT CAST(LEFT(CAST(YourColumn AS VARCHAR), 6) AS DATE)
SELECT CAST(LEFT(YourColumn, 6) AS DATE) --It works too

但是,對此的正確答案是使用正確的數據類型,即DATETIME

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM