簡體   English   中英

SQL自定義日期時間格式轉換為日期時間

[英]SQL Custom datetime format to datetime

我有一個varchar ,格式如下: yyyy-dd-MM hh:mm:ss

我需要能夠將其轉換為有效的datetime ,最好的方法是什么?

編輯例如:

DECLARE @d varchar = '2014-17-01 12:00:00'

SELECT CONVERT(DATETIME, @d, 103);

回報

Msg 241, Level 16, State 1, Line 3
Conversion failed when converting date and/or time from character string.

通過CONVERT嗎?

SELECT CONVERT(DATETIME, '2014-31-01 17:00:00', 103 /* British */);

(No column name)
2014-01-31 17:00:00.000

編輯以添加SET DATEFORMAT。 這為我解決了錯誤,並確保所有內容都進入正確的存儲區。

SET DATEFORMAT ydm

DECLARE @d VARCHAR(20) = '2014-17-01 12:00:00';
DECLARE @targetDate DATETIME = GETDATE(); -- Control Date
DECLARE @passedDate DATETIME = CAST(@d AS DATETIME);

SELECT @targetDate, @passedDate;

您可以將CONVERT用作:

DECLARE @TodayDate日期時間SET @TodayDate = GETDATE()選擇轉換(VARCHAR,@TodayDate,110)AS TodayDate

輸出:

2014年7月4日

希望能幫助到你 !

嘗試將日期和月份互換,然后將新字符串PARSE為日期時間。

DECLARE @d varchar(50) = '2014-17-01 12:00:00'

DECLARE @year varchar(10) = SUBSTRING(@d,1,4)
DECLARE @day varchar(10) = SUBSTRING(@d,6,2)
DECLARE @month varchar(10) = SUBSTRING(@d,9,2)
DECLARE @time varchar(10) = SUBSTRING(@d,12,8)

DECLARE @new_d varchar(50) = @year+'-'+@month+'-'+@day+' '+@time

SELECT PARSE(@new_d AS datetime USING 'en-US') as Result

暫無
暫無

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

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