19 位数字的最佳最小数据类型大小是多少?

1 sql-server datatypes timestamp sql-server-2017

我正在使用此代码来混合日期和时间以将其用作唯一 ID

DateTime.Now.ToString("yyyyMMddHHmmssfffff")
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 2017 中,我很困惑我可以使用哪种数据类型的最佳最小大小来存储此字符串。

最好的最小数据类型是什么:bigint,timestampvarchar(19)?

mot*_*zzt 5

您肯定不想使用varchar:您正在尝试存储一个数字,因此将其存储到字符串中是没有意义的。另外,不管你以后打算做什么,varchar 是一个让你不太灵活的字段:使用它真的没有意义。

您也想避免timestamp,因为它已被弃用,并且无论如何它都用于不同的用途(它只是rowversion的同义词)

您的选择是在bigintdatetime2(5) 之间,但鉴于您要求的精度为 5,它们都将使用 8 个字节,因此这里没有明确的赢家。datetime2可能具有的唯一优势是作为日期时间它最好由 datetime 函数处理。相反,Bigint将允许您表示负年份(以防万一)。

  • 更强:不要将任何看起来像日期和/或时间的内容存储为字符串。你们很多人现在不这样做,但将来有人会想要对它进行日期算术。所以使用正确的日期/时间数据类型。在这种情况下,出于这个原因,我强烈倾向于使用 datetime2。 (2认同)