[英]Convert SQL BigInt as 1811011439 to date time format
我的日期時間行看起來像這種格式
1811011439
1811011439
1811011439
1811011439
1811011439
1811011439
它可以這樣讀
Y. 18
M. 11
D. 01
在你看到的第一行
可以請指導我如何將其轉換為日期可讀格式。
您希望將日期時間值(存儲為bigint)的字符串represantation轉換為可讀格式。 在這種情況下,您可以將字符串/ bigint的日期部分CAST
為DATE
值:
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
,將其拆分,然后將CAST
為DATE
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.