Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql更新列,时间从_Sql_Sql Server - Fatal编程技术网

Sql更新列,时间从

Sql更新列,时间从,sql,sql-server,Sql,Sql Server,我需要用starttime列中的时间更新customdate1列。我遇到的问题是格式化。starttime的当前格式是HH:MM:SS.SSSSSSS我需要它是HH:MM 多谢各位 布莱恩 试试上面的一个。日期将被截断为5个字符hh:mm 试试上面的一个。日期将被截断为5个字符hh:mm日期将以创建列的格式存储,例如datetime 从表中检索日期时,您需要将日期转换为所需的格式,例如转换(字符(5),自定义日期1,108)日期将以创建列的格式存储,例如日期时间 从表中检索日期时,您需要将日期

我需要用
starttime
列中的时间更新
customdate1
列。我遇到的问题是格式化。
starttime
的当前格式是HH:MM:SS.SSSSSSS我需要它是HH:MM

多谢各位 布莱恩

试试上面的一个。日期将被截断为5个字符<代码>hh:mm


试试上面的一个。日期将被截断为5个字符<代码>hh:mm

日期将以创建列的格式存储,例如datetime


从表中检索日期时,您需要将日期转换为所需的格式,例如转换(字符(5),自定义日期1,108)

日期将以创建列的格式存储,例如日期时间


从表中检索日期时,您需要将日期转换为所需的格式,例如
convert(CHAR(5),customdate1,108)

您使用的数据类型是什么?如果是时间,您可以通过将列数据类型设置为时间(0)来更改分数秒精度。

您使用的数据类型是什么?如果是时候,您可以通过将列数据类型设置为时间(0)来更改分数秒精度。我建议您首先更改数据类型,然后执行更新

ALTER TABLE TableName
ALTER COLUMN CustomDate1 time(0) not null


UPDATE tablename
SET customdate1 = (SELECT starttime) 
                   FROM tablename);
如果不想存储秒数,可以将数据类型更改为char(5),然后执行更新。但不建议这样做。任何格式化都应该在应用程序级别进行

见示例:

ALTER TABLE TableName
ALTER COLUMN CustomDate1 char(5) not null


UPDATE tablename
SET customdate1 = (SELECT starttime) 
                   FROM tablename);
请参见一个快速示例:

DECLARE @time char(5) = '12:15';
SELECT @time AS '@time'

我建议您首先更改数据类型,然后执行更新

ALTER TABLE TableName
ALTER COLUMN CustomDate1 time(0) not null


UPDATE tablename
SET customdate1 = (SELECT starttime) 
                   FROM tablename);
如果不想存储秒数,可以将数据类型更改为char(5),然后执行更新。但不建议这样做。任何格式化都应该在应用程序级别进行

见示例:

ALTER TABLE TableName
ALTER COLUMN CustomDate1 char(5) not null


UPDATE tablename
SET customdate1 = (SELECT starttime) 
                   FROM tablename);
请参见一个快速示例:

DECLARE @time char(5) = '12:15';
SELECT @time AS '@time'

不可能选择一个
DATETIME
类型列作为所需格式,但可以创建一个
视图
,该视图已选择列以及另一列作为
HH:MM
格式

因此,您可以在
视图的选择列表中使用如下内容:

SELECT StartTime, EndTime, ..., CONVERT(VARCHAR(5), GETDATE(), 108)  AS CustomDate1_Formatted

不可能选择一个
DATETIME
类型列作为所需格式,但可以创建一个
视图
,该视图已选择列以及另一列作为
HH:MM
格式

因此,您可以在
视图的选择列表中使用如下内容:

SELECT StartTime, EndTime, ..., CONVERT(VARCHAR(5), GETDATE(), 108)  AS CustomDate1_Formatted


DateTime数据类型没有格式。它一致地存储数据。如果您只希望在前端使用HH:MM,则应在前端使用该格式。或者,您可以向select查询添加格式功能。我建议删除4个自定义字段。DateTime数据类型没有格式。它一致地存储数据。如果您只希望在前端使用HH:MM,则应在前端使用该格式。或者,您可以向select查询添加格式功能。我建议删除4个自定义字段。这不会更改值的默认“外观”,但会在分钟后更新值,使值全部为00。Msg 512,级别16,状态1,第1行子查询返回的值超过1。当子查询在=、!=、=或者当子查询用作表达式时。该声明已被终止。-您应该始终为使用的任何
varchar
变量和参数提供长度。这不会更改值的默认“外观”,但会更新值,使值在分钟后全部为00。Msg 512,级别16,状态1,第1行子查询返回的值超过1。当子查询在=、!=、=或者当子查询用作表达式时。该声明已被终止。-您应该始终为您使用的任何
varchar
变量和参数提供长度starttime是时间(7),customdate1是日期时间如果您无法将starttime数据类型更改为时间(0)请尝试使用convert(varchar,starttime,8)我将customdate1设置为时间(0),仍然显示为HH:MM:SStry使用convert(varchar(5),starttime,8)在update语句中,我还应添加时间列的最小大小为8个字符,因此除非您将其数据类型转换为varchar(不推荐使用@dejan87),否则无法删除秒部分starttime为时间(7),customdate1为日期时间如果您无法将starttime数据类型更改为时间(0),请尝试使用convert(varchar,StartTime,8)我将customdate1设置为时间(0),仍然显示为HH:MM:SStry使用convert(varchar(5),StartTime,8)在update语句中,我还应该添加时间列的最小大小为8个字符,因此除非您将其数据类型转换为varchar(不推荐使用@dejan87),否则您无法消除秒数part@Brian你为什么要麻烦秒呢?在应用程序级别,它可以在没有秒的情况下格式化。我正在尝试创建一个dimensMS visual studio中的多维数据集。每次我将时间度量值附加到多维数据集时,都会收到错误…后端数据库访问模块中的错误。为绑定指定的大小太小,导致一个或多个列值被截断。当我查看另一个维度时,它从SQL表中提取的数据的格式为HH;SS@Brian我能够用HH:MM字符(5)处理它。谢谢您的帮助。@Brian您为什么要费心设置秒数?在应用程序级别,它可以在没有秒数的情况下格式化。我正在尝试在MS visual studio中为多维数据集创建维度。每次我将时间度量值附加到多维数据集时,都会在后端数据库访问模块中收到错误…错误。为绑定指定的大小太小,导致在一个或多个列中,值被截断。当我查看另一个维度时,它从SQL表中提取的数据格式为HH;SS@Brian我能够用HH:MM字符(5)处理它。谢谢你们