データベーステーブル、つまりトランザクションIDに列があります。データ型はvar char(50)です。今は、現在の日付と生成された連続番号を組み合わせて行を保存したいと思います。データベース内のC#シーケンス番号の発行
たとえば、10/9/2016
は、最初のトランザクションが10920161のように保存され、次のトランザクションが10920162
などのように保存される日付です。連続番号は毎日1にリセットされます。
どうすればいいですか? SQL Serverでの
データベーステーブル、つまりトランザクションIDに列があります。データ型はvar char(50)です。今は、現在の日付と生成された連続番号を組み合わせて行を保存したいと思います。データベース内のC#シーケンス番号の発行
たとえば、10/9/2016
は、最初のトランザクションが10920161のように保存され、次のトランザクションが10920162
などのように保存される日付です。連続番号は毎日1にリセットされます。
どうすればいいですか? SQL Serverでの
、それはのように簡単になります
transactionId =
CONCAT(DATEPART(MONTH, GETDATE()),
DATEPART(DAY, GETDATE()),
DATEPART(YEAR, GETDATE()),
(SELECT COUNT(1)
FROM tableName
WHERE CONVERT(DATE, dateColumn) = CONVERT(DATE, getdate())) + 1)
は、その日付のトランザクションの数を取得し、それに1を追加します。今日の日付の書式設定された文字列でそれを連結します。
すでに今日の日付のための3つのレコードを持っている場合、結果は次のようになります。
100920164
編集を実行:これがためであるRDBMS
string dateStr = DateTime.Today.ToString("Mdyyyy");
DateTime todayMidnight = DateTime.Today;
DateTime tomorrowMidnight = DateTime.Today.AddDays(1);
obj.transactionId = dateStr +
context.tableName.Count(x=> x.dateColumn >= todayMidnight
&& x.dateColumn < tomorrowMidnight) + 1;
しかし、トランザクションごとに、トランザクションの日時を追加しました。それだけでなく、時間もあります。 –
@AzherAleem 'CONVERT(DATE、dateColumn)'は、DateTime列から日付部分を抽出します。 SQLのフィドルをチェックすると、 'DateTime'カラムがあります。 – user3185569
エンティティフレームワークを使用してこれを行うにはどうすればよいですか? –
:EFはスニペットを示唆しましたか? 'mysql'、' postgresql'、 'sql-server'、' oracle'、 'db2'のどれかを指定するタグを追加してください。 –