1 sql-server datatypes timestamp sql-server-2017
我正在使用此代码来混合日期和时间以将其用作唯一 ID
DateTime.Now.ToString("yyyyMMddHHmmssfffff")
Run Code Online (Sandbox Code Playgroud)
在 SQL Server 2017 中,我很困惑我可以使用哪种数据类型的最佳最小大小来存储此字符串。
最好的最小数据类型是什么:bigint,timestamp或varchar(19)?
您肯定不想使用varchar:您正在尝试存储一个数字,因此将其存储到字符串中是没有意义的。另外,不管你以后打算做什么,varchar 是一个让你不太灵活的字段:使用它真的没有意义。
您也想避免timestamp,因为它已被弃用,并且无论如何它都用于不同的用途(它只是rowversion的同义词)
您的选择是在bigint和datetime2(5) 之间,但鉴于您要求的精度为 5,它们都将使用 8 个字节,因此这里没有明确的赢家。datetime2可能具有的唯一优势是作为日期时间它最好由 datetime 函数处理。相反,Bigint将允许您表示负年份(以防万一)。