关键词:
【中文标题】在函数 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你为什么使用样式 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... 查看详情