简体   繁体   English

从 varchar 到 Datetime 的转换

[英]Conversion from varchar to Datetime

I have a date field with varchar data type and some of the values are for example 20220101000009CS.我有一个 varchar 数据类型的日期字段,其中一些值是例如 20220101000009CS。 I need to show date as (MM/dd/yyyy HH:mm:ss') and tried the below query but getting the error 'Conversion failed when converting date and/or time from character string.'我需要将日期显示为 (MM/dd/yyyy HH:mm:ss') 并尝试了以下查询,但收到错误“从字符串转换日期和/或时间时转换失败。”

select convert(datetime, 'DATE',20) 
from [TABLE1].[dbo].[ABC]

Please advice how do I get around this.请建议我如何解决这个问题。

You can use STUFF to inject the needed characters in the right place to get the format yyyyMMdd hh:mm:ss which is also unambiguous in SQL Server:您可以使用STUFF在正确的位置注入所需的字符以获得格式yyyyMMdd hh:mm:ss这在 SQL 服务器中也是明确的:

SELECT V.YourColumn,
       CONVERT(datetime2(0),STUFF(STUFF(STUFF(LEFT(V.YourColumn,14),13,0,':'),11,0,':'),9,0,' '))
FROM (VALUES('20220101000009CS'))V(YourColumn);

How about something like this?这样的事情怎么样?

SELECT DATETIMEFROMPARTS(
    SUBSTRING(datefield, 1, 4),
    SUBSTRING(datefield, 5, 2),
    SUBSTRING(datefield, 7, 2),
    SUBSTRING(datefield, 9, 2),
    SUBSTRING(datefield, 11, 2),
    SUBSTRING(datefield, 13, 2),
    0)
FROM [TABLE1].[dbo].[ABC];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM