在函数 SQL Server 中将字符串转换为日期时间

     2023-04-13     163

关键词:

【中文标题】在函数 SQL Server 中将字符串转换为日期时间【英文标题】:convert string to datetime in function SQL Server 【发布时间】:2011-09-09 18:54:24 【问题描述】:

我一直在 SQL Server 中编写用户定义函数:

看起来像这样:

CREATE FUNCTION FormatDate(@fromtime nvarchar(50))
RETURNS DATETIME
AS 
BEGIN

    DECLARE @tempfrom datetime
    DECLARE @tempto nvarchar(50)

    set @tempfrom =  Convert(datetime, @fromtime, 100) 
    RETURN @tempfrom

END

select dbo.FormatDate('08/17/2010 4:30')

当我尝试运行它时,我收到以下错误:

将 nvarchar 值 '08/17/2010 4:30' 转换为数据类型 int 时转换失败。

我做错了什么?

【问题讨论】:

为什么选择 nvarchar?您是否要在日期字符串中使用变音符号和日元符号? @NullUserException tee hee 别说了,你让我想偷懒去看看韭菜 嘿,我可以为你打开团队查看器并显示它.. 它是 100% CODE.... 是的,但是您遇到的错误来自您未显示的代码。这让我们很难知道发生了什么,因为我们无法访问任何“团队查看器”...... 我想通了。感谢 Aaron 抽出宝贵时间,但这是我函数中唯一的代码,我已将代码完全放在这里.....我不知道为什么它给出了错误,但你的评论仍然对删除函数有帮助.. ... 【参考方案1】:

您在转换中指定的 100 用于在您选择数据时格式化,而不是格式化数据的存储。

日期时间只是存储为日期时间 - 就是这样(我的意思是,取决于您的 SQL 设置,它可能是 MM/DD/YYYY 或 DD/MM/YYYY)。

但如果你这样做:

set @tempfrom =  Convert(datetime, @fromtime)

现在是日期时间,您可以通过将其包装在另一个转换器中来将其转换为所需的格式:

convert(varchar, convert(datetime, @fromtime), 100)

【讨论】:

因为那是输出一个格式化的字符串。您需要选择是要输出格式化字符串还是日期时间。然后函数需要说 RETURNS 并实际返回 .【参考方案2】:

你为什么使用样式 100?

CREATE FUNCTION dbo.FormatDate -- schema prefix always!
(
    @fromtime VARCHAR(50) -- varchar
)
RETURNS DATETIME
AS 
BEGIN -- don't need variables anywhere
   RETURN(CONVERT(DATETIME, @fromtime));
END
GO

【讨论】:

我以后需要这些东西。这就是我使用这些变量的原因 以后去哪里?在函数中? 那么为什么不把整个函数贴出来,让我们知道整个问题呢? @user838359:那么你做错了什么,因为这段代码对我来说很好。 那你为什么不从头开始,例如暂时放弃功能混乱并尝试SELECT CONVERT(DATETIME, '08/17/2010 4:30'); - 有效吗?接下来试着弄清楚为什么你使用m/d/y而不是像yyyy-mm-ddThh:mm:ss这样的安全格式......你永远不应该将日期作为字符串处理,如果必须,你应该总是用一种语言来处理它们 - 并且区域设置独立方式。

在 SQL Server 中将字符串转换为日期

】在SQLServer中将字符串转换为日期【英文标题】:ConvertstringintodateinSQLServer【发布时间】:2016-01-1607:06:03【问题描述】:从字符串转换日期和/或时间时转换失败。在SQLServer中运行此语句时出现上述错误:SELECTCONVERT(datetime,\'Fri,15Ja... 查看详情

在 MS SQL Server 中将字符串转换为日期时间

】在MSSQLServer中将字符串转换为日期时间【英文标题】:ConvertingastringtoadatetimeinMSSQLServer【发布时间】:2016-12-1415:56:10【问题描述】:选择CONVERT(datetime,\'12/16/200111:00:00PM\',???)通过查看https://msdn.microsoft.com/en-us/library/ms187928.aspx,我... 查看详情

在 C# 中将十六进制值从 SQL Server 转换为日期时间

...用应该与它在SQLServer中的作用相同。我将十六进制值作为字符串“0000AC0500000000”或字节列表:["0","0","172","5","0 查看详情

在 PHP Laravel 中的 SQL Server 中将字符串转换为日期数据类型

】在PHPLaravel中的SQLServer中将字符串转换为日期数据类型【英文标题】:ConvertstringtodatedatatypeinSQLServerinPHPLaravel【发布时间】:2020-08-2020:24:09【问题描述】:我试图在特定日期范围内通过id获取产品,但我面临的问题是:日期为字... 查看详情

在sql server中将日期时间转换为yyyymmddhhmmss

】在sqlserver中将日期时间转换为yyyymmddhhmmss【英文标题】:Convertdatetimetoyyyymmddhhmmssinsqlserver【发布时间】:2013-10-3015:15:55【问题描述】:我需要从yyyymmddhhmmss计算本地时间并将其返回为yyyymmddhhmmss。我已经尝试了以下方法,它正在... 查看详情

在 SQL Server 数据库中将长日期时间转换为实际日期时间的最佳方法是啥?

】在SQLServer数据库中将长日期时间转换为实际日期时间的最佳方法是啥?【英文标题】:WhatisthebestwaytoconvertalongdatetimeintoanactualdatetimeinaSQLServerdatabase?在SQLServer数据库中将长日期时间转换为实际日期时间的最佳方法是什么?【发... 查看详情

SQL Server 将字符串转换为日期时间

】SQLServer将字符串转换为日期时间【英文标题】:SQLServerconvertstringtodatetime【发布时间】:2010-11-1106:25:12【问题描述】:这不是询问如何在MSSQL中将任意字符串转换为日期时间,例如thisquestion。我可以控制字符串格式,但我想知... 查看详情

在 pyspark SQL 中将字符串日期转换为日期格式

】在pysparkSQL中将字符串日期转换为日期格式【英文标题】:ConvertstringdatetodateformatinpysparkSQL【发布时间】:2021-11-1615:51:30【问题描述】:我在表格中有一个日期列,它是字符串格式我需要把这个字符串日期转换成日期类型格式这... 查看详情

在 SQL Server 中将 varchar 转换为 datetime [重复]

】在SQLServer中将varchar转换为datetime[重复]【英文标题】:convertvarchartodatetimeinSQLServer[duplicate]【发布时间】:2013-03-2808:49:15【问题描述】:在varchar(dayname,monthdate,year)中设置日期,例如(1013年1月16日,星期三),我必须将其转换为日... 查看详情

在 SQL(Redshift)中将字符串(43677)转换为日期格式 [关闭]

】在SQL(Redshift)中将字符串(43677)转换为日期格式[关闭]【英文标题】:convertastring(43677)todateformatinSQL(Redshift)[closed]【发布时间】:2020-05-1019:34:41【问题描述】:如何在SQL(Redshift)中将字符串(43677)转换为日期?(我正在尝试转... 查看详情

如何在databricks sql中将字符串转换为日期

】如何在databrickssql中将字符串转换为日期【英文标题】:Howtoconvertstringtodateindatabrickssql【发布时间】:2021-03-0309:49:42【问题描述】:我有一个名为opens_dt的列,其中包含字符串格式的时间戳。+----------------------------+|opened_dt|+------... 查看详情

如何在 SQL Server 中将拆分函数转换为内联表值 udf?

】如何在SQLServer中将拆分函数转换为内联表值udf?【英文标题】:HowcanIconvertsplitfunctiontoinlinetablevaluedudfinSQLserver?【发布时间】:2015-04-3007:26:32【问题描述】:假设我有这个查询(伪):SelectT.a,T.b,(selecttop1elementfromfn_split(c,\',\')whe... 查看详情

在 PHP 中将日期时间从 SQL 转换为字符串

】在PHP中将日期时间从SQL转换为字符串【英文标题】:ConvertingdatetimefromSQLtostringinPHP【发布时间】:2013-08-1901:02:30【问题描述】:我有一个SQL数据库表,其中包含一个包含日期时间格式数据的列。现在,在获得这一行的值之后,... 查看详情

如何在presto sql中将字符串'yyyy-mm-dd'转换为日期格式

】如何在prestosql中将字符串\\\'yyyy-mm-dd\\\'转换为日期格式【英文标题】:Howtoconvertstring\'yyyy-mm-dd\'todateformatinprestosql如何在prestosql中将字符串\'yyyy-mm-dd\'转换为日期格式【发布时间】:2020-10-1106:00:43【问题描述】:在prestoSQL中,日... 查看详情

在 Databricks SQL 中将字符串转换为日期格式时出现空结果

】在DatabricksSQL中将字符串转换为日期格式时出现空结果【英文标题】:NullresultwhenconvertingStringtoDateformatinDatabricksSQL【发布时间】:2020-01-3114:10:57【问题描述】:我有一个来自临时视图的字符串列,日期值是以“2020/01/01”的格式... 查看详情

SQL Server:在 case 语句中将 UniqueIdentifier 转换为字符串

】SQLServer:在case语句中将UniqueIdentifier转换为字符串【英文标题】:SQLServer:convertingUniqueIdentifiertostringinacasestatement【发布时间】:2011-09-1202:19:50【问题描述】:我们有一个日志表,其中有一个消息列,该列有时具有异常堆栈跟踪... 查看详情

在 SQL Server 中将经纬度转换为 UTM X 和 UTM Y 坐标的函数

】在SQLServer中将经纬度转换为UTMX和UTMY坐标的函数【英文标题】:FunctiontoconvertfromlatitudeandlongitudetoUTMXandUTMYcoordinateinSQLServer【发布时间】:2019-12-0407:42:28【问题描述】:我需要在SQLServer中创建一个将经度和纬度转换为UTMX和UTMY坐... 查看详情

在 Databricks SQL 中将字符串转换为日期返回 null

】在DatabricksSQL中将字符串转换为日期返回null【英文标题】:ConvertingStringtodateinDatabricksSQLreturnsnull【发布时间】:2021-06-1219:17:20【问题描述】:我有一个表,其中包含名为Date的字符串列,其中包含值(dd-Mon-yy格式化数据和yyyy-mm-d... 查看详情