如何将 nvarchar 字符串 mm/dd/yyyy hh:mm:ss 转换为日期时间?

坠落

我有一个 nvarchar 列,其日期格式如下:“04/18/2021 13:04:15”(不带引号)。我想将此列更改为日期时间并迁移所有数据。我查找了格式代码并发现,与我的变体最接近的代码是 US (101)。所以我试图

UPDATE DropPhotos
SET CreationDateTime = CONVERT(NVARCHAR(255), CONVERT(DateTime, CreationDateTime, 101))
ALTER TABLE DropPhotos
ALTER COLUMN CreationDateTime DateTime

但我得到错误:

将数据类型 nvarchar 转换为日期时间时出错

戈登·利诺夫

首先,您不应将日期/时间值作为字符串存储在数据库中。当然,如果下一步是将列更改为datetime(或类似的),则您正在做的事情很好

其次,您显然有错误的数据。所以,使用try_convert()找到它:

select CreationDateTime
from DropPhotos
where try_convert(DateTime, CreationDateTime, 101) is null and
      CreationDateTime is not null;

您需要弄清楚如何处理这些错误的值。如果NULL可以接受,那么只需try_convert()在您的原始逻辑中使用:

SET CreationDateTime = CONVERT(NVARCHAR(255), TRY_CONVERT(DateTime, CreationDateTime, 101))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将日期时间字符串转换为“ yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSSZ”

将字符串转换为日期时间dd / MM / yyyy hh:mm:ss tt

Java:如何将字符串(HH:MM:SS)转换为持续时间?

将字符串时间戳mm / dd / yy hh:mm:ss转换为Google表格中的日期/时间类型

C#将字符串“yyyy-MM-dd hh:mm:ss 'UTC'”转换为日期时间

如何将“ MM / DD / YYY HH:MM:SS AM / PM”字符串转换为时间戳?

如何将jodatime持续时间转换为格式为hh:mm:ss的字符串?

将HH:MM:SS(AM / PM)的字符串时间格式转换为秒

将字符串时间戳HH:MM:SS转换为C中的整数

将字符串dd / mm / yyy转换为yyyy-mm-dd hh:mm:ss

将整数转换为日期时间(dd:hh:mm:ss)

无法将日期字符串转换为 YYYY-MM-DDTHH:MM:SS-HH:MM 格式

如何将以毫秒(hh:mm:ss.xxx)为单位的字符串时间转换为time.Time?

如何将ISO日期和时间格式转换为“ DD Mon YYYY hh:mm:ss”?

如何将varchar转换为hh:mm:ss的日期时间格式?

MSSQL将字符串转换为yyyy-mm-dd hh:mm:ss

如何将 Java 字符串“EEE MMM dd HH:mm:ss zzz yyyy”日期类型转换为 Java util.Date“yyyy-MM-dd”

Java将字符串yyyy-MM-dd HH:mm:ss转换为加拿大/东部时区的时间戳

如何在JavaScript中将字符串'dd / mm / yy hh:MM:ss'转换为Date?

如何将具有这种格式 (yyyy-MM-dd HH:mm:ss) 的字符串形式的日期转换为这种格式的 DateTime 对象 (dd-MM-yyyy HH:mm:ss)

将格式为 yyyy-MM-dd HH:mm:ss.SSS 的字符串日期转换为字符串 MM/dd/yyyy

Coldfusion日期转换将yyyy-mm-dd:hh:mm:ss转换为日期和时间

在 Python 中将日期时间格式转换为“YYYY-MM-DD HH:MM:SS”字符串

在 Google 表格中将时间戳字符串 (dd MMM yyyy HH:mm:ss) 转换为日期 (DD/MM/YY)

如何将 MMDDYYYY 等非分隔字符串转换为 MM-DD-YYYY

如何将 yyyy-MM-dd-hh.mm.ss 中的日期字段转换为 Hive 中的时间戳字段(yyyy-MM-dd hh:mm:ss))

如何将日期从(ddmmyyyy HH:mm:ss)转换为(yyyy-MM-dd HH:mm:ss.SSS)?)

在java 7中将字符串日期转换为yyyy-MM-dd'T'HH:mm:ss.SSSSSS格式的字符串

如何在C ++中将chrono :: seconds转换为HH:MM:SS格式的字符串?