sql - 使用强制转换将 varchar 转换为日期

标签 sql sql-server date

我想将一些“日期”转换为实际日期。这似乎适用于当天小于 13 号的情况。看来是把13号认作一个月了。

SELECT [User ID],
       try_CAST([First Seen (BST)] as datetime) as [New First Seen Date]
       [First Seen (BST)],
       [Signed up (BST)]
FROM [dbo].[fix]

当我希望以相同的格式/类型转换它们时显示为 NULL。

New First Seen Date                      First Seen Date
2018-11-08 23:38:00.000                  11/08/2018 23:38
NULL                                     20/08/2018 22:07
NULL                                     26/08/2018 22:41
2018-09-09 20:55:00.000                  09/09/2018 20:55
2018-09-09 23:24:00.000                  09/09/2018 23:24

非常感谢

最佳答案

由于您的日期字符串是 DD/MM/YYYY,因此您可以使用样式 103。

select NewDate = TRY_CONVERT(datetime, s.FirstSeenDate, 103)
    , s.FirstSeenDate
from 
(values
    ('11/08/2018 23:38')
    , ('20/08/2018 22:07')
    , ('26/08/2018 22:41')
    , ('09/09/2018 20:55')
    , ('09/09/2018 23:24')
)s(FirstSeenDate)

关于sql - 使用强制转换将 varchar 转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58453162/

相关文章:

sql - 如何添加仅具有一组值选择的列?

java - SQL 数据库 (JDBC) : A column of type date only stores date values and not time values

javascript - 在 JavaScript 中创建新对象时什么时候需要括号和 new 关键字?

java - GWT DateTimeFormat 反转时区值

sql - 我可以基于多列聚合数据库数据吗?

sql - 按整数排序,底部空白字段

MySQL DISTINCT 没有过滤掉

sql - 为什么我不能对包含聚合的表达式执行聚合函数,但可以通过围绕它创建新的 select 语句来执行聚合函数?

.net - 更改结果集的排序顺序 'fairly'

c# - 在方法中将数据集作为对象返回