Linq DateTime Format bagaimana cara menggunakan?/Konversi?

pemrograman


yang terhormat,

Bantu saya cara mengonversi Format datetime LINQ

Contoh:

1, Selasa, 26 Januari 2012 (atau)

2, Sel, 26 Jan 2012

Beri saya solusi?

Oleh mohan

Solusi 1

VB
YearMonth = r.SomeDateTime.ToString("dddd, MMMM yyyy")

Solusi 3

linq tidak tahu metode konversi, “ToString()” jadi ketika Anda mendapatkan data, gunakan enumerable seperti
var selectQuery = dari penambahan db.address.asEnumerable() ;

maka sekarang Anda dapat menggunakan metode convert atau “tostring”.

Solusi 4

(dari nama kelas di time.table pilih t.Date).ToList().Select(d => d.ToString(“yyyy-MM-dd”);
coba berhasil…….

Solusi 5

C#
var selectQuery=from add in db.address
                 select add.myDate.toString("{0:dddd, MMMM d, yyyy}");

selectQuery.Distinct();

coba ini..

Salam,
nishant

Solusi 7

Memformat stempel waktu tanggal di sisi server

Terkadang berguna untuk memformat sisi server. Mengelompokkan stempel waktu dengan resolusi subdetik ke dalam kelompok berdurasi satu jam atau satu hari adalah contohnya.

Dalam kasus penggunaan saya, kami mendapatkan 700 ribu catatan baru/hari. Jadi sisi server bisa jauh lebih cepat. Dalam hal ini 2,5 juta catatan dikelompokkan menjadi 4 hari.

Menerapkan AsEnumerable berfungsi, tetapi akan memakan waktu ~40 menit (2500 detik). Ini diekstrapolasi dari pengembalian 1000/dtk.

Pengelompokan sisi server membutuhkan waktu sekitar 0,7 detik. Ini diukur.

Saya menjalankan remote yang sangat lambat, tapi itulah intinya. Basis data yang dihosting selalu memberikan hasil melalui kabel, jadi penggabungan di server DB memungkinkan mesin DB melakukan apa yang menjadi tujuan pembuatannya, secara lokal.

Beberapa operasi seperti toupper() atau memformat setiap catatan harus dilakukan secara lokal jika memungkinkan. LinqToSQL/EF untuk memformat tanggal tidak terlalu sulit, tetapi SQL yang dihasilkan cukup berantakan.

Menambahkan pembatas adalah untuk manusia, dan tidak diperlukan untuk pengelompokan. Bahkan metode PadLeft() tidak diperlukan dalam banyak kasus, namun metode ini membuat datetime yang dihasilkan mudah untuk diurutkan secara leksikal dan dibaca.

Dalam contoh ini saya menetapkan Jam, Menit dan Detik ke 00, untuk mengelompokkan berdasarkan hari.
Untuk mengelompokkan berdasarkan jam, batalkan komentar:

let Hour = Date.Hour.ToString().PadLeft(2, '0')
//let Hour = "00"

Ini hanyalah contoh cepat dan kotor. bukan kode tercepat yang pernah ada.

Melakukannya saja, sisi server mendapatkannya dari 40 detik. kurang dari satu detik. Jadi saya sudah selesai untuk saat ini.

BTW skrip ini berjalan di LinqPad di env saya saja, Jadi edit sesuai kebutuhan Anda, tetapi jangan minta saya untuk menyelesaikan masalah spesifik Anda.

void Main()
{
	var query =
	from cat in CATOperations

	let Date = cat.OperationDateTime

	let Year = Date.Year.ToString().PadLeft(4, '0')
	let Month = Date.Month.ToString().PadLeft(2, '0')
	let Day = Date.Day.ToString().PadLeft(2, '0')
	//let Hour = Date.Hour.ToString().PadLeft(2, '0')
	let Hour = "00"
	//let Minute = Date.Minute.ToString().PadLeft(2, '0')
	let Minute = "00"
	//let Second = Date.Second.ToString().PadLeft(2, '0')
	let Second = "00"

	let dateGroup = Year
		+ '/'
		+ Month
		+ '/'
		+ Day
		+ " "
		+ Hour
		+ ":"
		+ Minute
		+ ":"
		+ Second

	where Date > new DateTime(2024, 1, 9)
	//select new{Date, dateGroup};

	group 1 by dateGroup into g
	orderby g.Key
	let count = g.Count()

	select new { g.Key, count };

	query.Dump();
}

コメント

タイトルとURLをコピーしました