首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将NVARCHAR转换为日期SQL

将NVARCHAR转换为日期SQL
EN

Stack Overflow用户
提问于 2022-01-25 23:00:40
回答 2查看 212关注 0票数 -2

转换此nvarchar到目前为止有困难:我想将'2021-02-01 00:00:00.0000000‘nvarchar转换为2021-02-01日期。

代码语言:javascript
复制
   DECLARE @var nvarchar(255) = '2021-02-01 00:00:00.0000000'
   CONVERT(date, @var, 103)

我已经使用了这个转换函数,但是我得到了:

从字符串转换日期和/或时间时,转换失败

错误。对如何解决这个问题有什么帮助吗?

EN

回答 2

Stack Overflow用户

发布于 2022-01-25 23:42:48

尝试120而不是103103需要一个格式为d/m/y的字符串。

代码语言:javascript
复制
DECLARE @var nvarchar(255) = '2021-02-01 00:00:00.0000000';
SELECT CONVERT(date, @var, 120);

结果(db<>fiddle):

代码语言:javascript
复制
2021-02-01

另外:

  • 为什么是nvarchar?日期不需要支持Unicode字符。
  • 尝试让源代码将格式更正为标准的、明确的格式,例如: yyyymmdd :mm:ss.nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

更多关于约会的内容:负责任地约会

票数 2
EN

Stack Overflow用户

发布于 2022-01-25 23:05:19

您可以直接将格式设置为CASTDATETIME2类型。

代码语言:javascript
复制
DECLARE @var nvarchar(255) = '2021-02-01 00:00:00.0000000'
DECLARE @date date = CAST(@var AS DATE);

SELECT @var as var, @date as [date];

甚至没有格式号的转换

代码语言:javascript
复制
DECLARE @var nvarchar(255) = '2021-02-01 00:00:00.0000000'
DECLARE @datetime2 datetime2 = CONVERT(DATETIME2, @var);

SELECT @var as var, @datetime2 as [datetime2];

但是对于CASTCONVERT,则需要将其截断为DATETIME

默认格式编号为121 (ODBC规范,毫秒)

代码语言:javascript
复制
DECLARE @var nvarchar(255) = '2021-02-01 00:00:00.0000000'
DECLARE @datetime datetime = CONVERT(datetime, LEFT(@var, 23), 121);

SELECT @var as var, @datetime as [datetime];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70856771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档