C#等同于SQL的NOW()函数

时间:2017-09-17 14:07:25

标签: c#

我一直在谷歌,StackOverflow和许多其他网站上四处寻找,但未能找到这个看似如此简单的问题的答案。在SQL中,您可以使用NOW()生成一个独特的时间戳,该时间戳不会重复,例如下面的内容。

0905b300-9baf-11e7-9257-cbc888cc9932

就像在SQL和CQL中编写NOW()一样简单,但没有人说过在C#中创建这种类型的字符串?我现在能够创建的是使用DateTime方法的可怕时间戳。

5 个答案:

答案 0 :(得分:3)

我认为您正在寻找生成唯一标识符的Guid.NewGuid()

// This code example demonstrates the Guid.NewGuid() method.using System;

class Sample 
{
    public static void Main() 
    {
        Guid g;
        // Create and display the value of two GUIDs.
        g = Guid.NewGuid();
        Console.WriteLine(g);
        Console.WriteLine(Guid.NewGuid());
    }
}


/*
This code example produces the following results:

0f8fad5b-d9cb-469f-a165-70867728950e
7c9e6679-7425-40de-944b-e07fc1f90ae7

*/

答案 1 :(得分:3)

使用Guid.NewGuid()

using System;

public class MyClass
{
    void DoSomething()
    {
        var guid=Guid.NewGuid();
        Console.WriteLine(guid.ToString());
    }
}

答案 2 :(得分:3)

事实证明,您实际上并未使用SQL,而是使用CQL或Cassandra查询语言。 Cassandra有一个怪癖,它使用GUID类型来存储日期和时间值;因此,这种类型在Cassandra中被称为timeuuid

在C#中没有这样的东西。对于日期时间值,存在DateTime类型,对于唯一标识符值,存在Guid类型。你不应该用另一个。也没有内置的方法在两者之间进行转换。

我所知道的SQL的任何变体都不会以这种方式重用GUID类型。

答案 3 :(得分:0)

如果要模拟SQL Server的NOW()函数的输出,可以使用DateTime.Now,但更改输出以匹配NOW()使用ToString实际返回的内容适当的格式掩码。

DateTime nowDate = DateTime.Now;
Console.WriteLine("Today is " + nowDate.ToString("yyyy-MM-dd HH:mm:ss") + ".");

<强>输出:

Today is 2017-09-17 16:19:46.

Demo

答案 4 :(得分:-1)

在C#中,使用System.DateTime.Now

请注意。 NOW()函数不是SQL它是专有的MySQL。它提供的功能是生成一个时间顺序(不断递增)的值。简而言之,可以用于按时间顺序对事件进行排序的值。 C#中的这个函数由属性Content-Type提供,它也很方便地包含实际的日期和时间。如果您必须使用顺序guid,请使用UuidCreateSequential

相关问题