Sql server 如何通过在SQL Server中以自己的格式编写查询来插入新行?

Sql server 如何通过在SQL Server中以自己的格式编写查询来插入新行?,sql-server,database,Sql Server,Database,我正在尝试执行一个查询,以便在SQL Server中的表中插入行。简单来说,它工作正常,在yyyy-MMM-dd-hh:mm:ssttt格式中为datetime列插入一行。我的问题是我必须以dd/MMM/yyyhh:mm:ss ttt格式插入行。是否可以通过SQL Server中的查询执行此操作?这应该可以正常工作,尤其是当月份组件为MMM而非MM(可能导致转换问题)时。这应该可以正常工作,尤其是当月份组件为MMM而非MM(可能导致转换问题)时。是的,这是可能的。这也是一种毫无意义的尝试。为什么

我正在尝试执行一个查询,以便在SQL Server中的表中插入行。简单来说,它工作正常,在
yyyy-MMM-dd-hh:mm:ss
ttt
格式中为
datetime
列插入一行。我的问题是我必须以
dd/MMM/yyy
hh:mm:ss ttt
格式插入行。是否可以通过SQL Server中的查询执行此操作?

这应该可以正常工作,尤其是当月份组件为MMM而非MM(可能导致转换问题)时。

这应该可以正常工作,尤其是当月份组件为MMM而非MM(可能导致转换问题)时。

是的,这是可能的。这也是一种毫无意义的尝试。为什么要在数据库访问编码中引入一些特定于区域性的日期编码

yyyy MMM dd hh:mm:ss ttt格式

这是ISO区域性独立格式,无论用户的计算机设置为什么,它都可以工作。这是有原因的

我的问题是我必须以dd/MMM/yyyy hh:mm:ss ttt格式插入行

不,你没有。你只是在幻想中。您必须在sql server中插入日期时间。没有任何东西表明您不能首先正确格式化它


为什么必须以这种特定格式插入它?

是的,这是可能的。这也是一种毫无意义的尝试。为什么要在数据库访问编码中引入一些特定于区域性的日期编码

yyyy MMM dd hh:mm:ss ttt格式

这是ISO区域性独立格式,无论用户的计算机设置为什么,它都可以工作。这是有原因的

我的问题是我必须以dd/MMM/yyyy hh:mm:ss ttt格式插入行

不,你没有。你只是在幻想中。您必须在sql server中插入日期时间。没有任何东西表明您不能首先正确格式化它


为什么必须以这种特定的格式插入它?

据我所知,SQL server在内部以相同的格式存储日期和时间,而不管您使用何种格式。将字符串解析为日期时间是另一回事。 要使用不同的格式,可以使用CONVERT函数并提供style参数,
我认为113/13与您指定的最接近

据我所知,SQL server在内部以相同的格式存储日期时间,而不管您给它什么。将字符串解析为日期时间是另一回事。 要使用不同的格式,可以使用CONVERT函数并提供style参数,
我认为113/13最接近您指定的格式

My,我的应用程序有一些标准可插入该格式。我们也可以使用ISO文化独立格式进行调整,但我只是尝试一下,不管我们是否可以做到。不,您的应用程序肯定没有SQL脚本看起来像这样的标准。无论用户输入什么,都应该解析并转换为正确的日期时间变量类型,并使用这些类型生成sql(或:参数化sql语句的参数)。我非常确定在sql层上没有使用特定格式的标准。如果有这样的标准,那一定是因为站点/应用程序的其他部分直接选择服务器日期字符串,而不进行转换,那是非常愚蠢的编码,应该尽快被替换掉,因为它将继续给未来带来难以言喻的问题。我的应用程序有一些标准可以插入这种格式。我们也可以使用ISO文化独立格式进行调整,但我只是尝试一下,不管我们是否可以做到。不,您的应用程序肯定没有SQL脚本看起来像这样的标准。无论用户输入什么,都应该解析并转换为正确的日期时间变量类型,并使用这些类型生成sql(或:参数化sql语句的参数)。我非常确定在sql层上没有使用特定格式的标准。如果有这样的标准,那一定是因为站点/应用程序的其他部分直接选择服务器日期字符串,而不进行转换,这显然是愚蠢的编码,应该尽快被取代,因为它将继续给未来带来难以言喻的问题。