答案 0 :(得分:0)
UPDATE tablename
SET customdate1 = (SELECT SUBSTRING(CONVERT(varchar, starttime, 108), 1, 5)
FROM tablename);
尝试上面的一个。日期将被截断为5个字符。 hh:mm
答案 1 :(得分:0)
日期将以列创建的格式存储,例如日期时间
您需要将日期转换为从表中检索日期时所需的格式,例如CONVERT(CHAR(5), customdate1, 108)
答案 2 :(得分:0)
您使用的数据类型是什么?如果是时候你可以通过将列数据类型设置为time(0)
来更改分数秒精度答案 3 :(得分: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'
答案 4 :(得分:0)
无法选择DATETIME
类型列作为所需格式,但您可以创建VIEW
,其中已选择列以及HH:MM
格式的另一列
所以你可以在VIEW
的选择列表中使用这样的东西:
SELECT StartTime, EndTime, ..., CONVERT(VARCHAR(5), GETDATE(), 108) AS CustomDate1_Formatted