使用自定义格式更新时间戳 (dd/MM/yyyy HH:MM:ss.FFFFFFF)
Updating timestamp with custom format (dd/MM/yyyy HH:MM:ss.FFFFFFF)
如何编写一条语句,以 dd/MM/yyyy HH:MM:ss.FFFFFFF
格式更新数据库中的日期字段。
我有 select 查询 return 需要的字符串
SELECT FORMAT(CURRENT_TIMESTAMP, 'dd/MM/yyyy HH:MM:ss.FFFFFFF')
我试过
update ORDER
set timedate=FORMAT(CURRENT_TIMESTAMP, 'dd/MM/yyyy HH:MM:ss.FFFFFFF')
WHERE ID='288'
但是 return 错误 :
SQL Error [8152] [22001]: String or binary data would be truncated.
com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would
be truncated.
我的字段数据类型是 varchar 27
CREATE TABLE AYAM.dbo.ORDER (
ID int NOT NULL IDENTITY(1,1),
TIMEDATE varchar(27) NOT NULL,
CONSTRAINT PK_ORDER_DATA PRIMARY KEY (ID,TIMEDATE)
) GO;
我正在使用 MSSQL 2016
当 CURRENT_TIMESTAMP 函数 returns 只有 3 个小数时,为什么你要求 FFFFFFF?使用 SYSDATETIME() 函数以获得更好的精度。
我无法重现错误。 SQL 您使用什么服务器版本?
create table #test (timedate varchar(27))
insert into #test VALUES ('test');
update #test
set timedate=FORMAT(SYSDATETIME(), 'dd/MM/yyyy HH:MM:ss.FFFFFFF')
select * from #test
drop table #test
输出为:18/09/2017 12:09:44.6914345
更新:
使用您的 table 结构完成了相同的测试。没有错误...
INSERT INTO dbo.[ORDER] (TIMEDATE) VALUES ('test')
GO 300
update [ORDER]
set timedate=FORMAT(CURRENT_TIMESTAMP, 'dd/MM/yyyy HH:MM:ss.FFFFFFF')
WHERE ID='288'
如何编写一条语句,以 dd/MM/yyyy HH:MM:ss.FFFFFFF
格式更新数据库中的日期字段。
我有 select 查询 return 需要的字符串
SELECT FORMAT(CURRENT_TIMESTAMP, 'dd/MM/yyyy HH:MM:ss.FFFFFFF')
我试过
update ORDER
set timedate=FORMAT(CURRENT_TIMESTAMP, 'dd/MM/yyyy HH:MM:ss.FFFFFFF')
WHERE ID='288'
但是 return 错误 :
SQL Error [8152] [22001]: String or binary data would be truncated. com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be truncated.
我的字段数据类型是 varchar 27
CREATE TABLE AYAM.dbo.ORDER (
ID int NOT NULL IDENTITY(1,1),
TIMEDATE varchar(27) NOT NULL,
CONSTRAINT PK_ORDER_DATA PRIMARY KEY (ID,TIMEDATE)
) GO;
我正在使用 MSSQL 2016
当 CURRENT_TIMESTAMP 函数 returns 只有 3 个小数时,为什么你要求 FFFFFFF?使用 SYSDATETIME() 函数以获得更好的精度。
我无法重现错误。 SQL 您使用什么服务器版本?
create table #test (timedate varchar(27))
insert into #test VALUES ('test');
update #test
set timedate=FORMAT(SYSDATETIME(), 'dd/MM/yyyy HH:MM:ss.FFFFFFF')
select * from #test
drop table #test
输出为:18/09/2017 12:09:44.6914345
更新: 使用您的 table 结构完成了相同的测试。没有错误...
INSERT INTO dbo.[ORDER] (TIMEDATE) VALUES ('test')
GO 300
update [ORDER]
set timedate=FORMAT(CURRENT_TIMESTAMP, 'dd/MM/yyyy HH:MM:ss.FFFFFFF')
WHERE ID='288'