簡體   English   中英

系統年份 YYYY 加上 coulmn 的值 MMDD 在 C# 中作為“dd-MMM-yyyy”插入到數據庫中

[英]System year YYYY plus coulmn's value MMDD insert into Database as 'dd-MMM-yyyy' in C#

我要閱讀文本文件,其中有一列格式為 MMDD 的購買日期可用。 正在讀取並成功插入所有記錄。 但是現在我想將“系統年份”和“購買日期”作為“dd-MMM-yyyy”插入到數據庫的日期列中。 示例:如果購買日期為“0812”且系統年份為“19”,則日期將為“12-AUG-19”。 我怎樣才能做到這一點 ?

從 Oracle 開始,您將應用一些轉換

  • 將您擁有的值 (0812) 與今年連接起來(這就是extract作用)
  • to_date應用到它,並使用適當的格式掩碼( mmddyyyy
  • to_char應用於該值,使用所需/最終格式掩碼( dd-mon-yyyy

像這樣的東西:

SQL> select to_char(to_date('0812' || extract(year from sysdate), 'mmddyyyy'), 'dd-mon-yyyy') result from dual;
                             ----
                             this is what you have, MMDD

RESULT
-----------
12-aug-2019

SQL>

如果您正在尋找C# 代碼,則可以先Parse ,然后創建所需的DateTime ,最后格式化DateTime

  string source = @"0812";
  int SystemYear = 19;

  // Parsed date, note, that year is DateTime.Now.Year, not required SystemYear
  DateTime date = DateTime.ParseExact(source, "MMdd", CultureInfo.InvariantCulture);

  date = new DateTime(
    CultureInfo.InvariantCulture.Calendar.ToFourDigitYear(SystemYear), // SystemYear
    date.Month,                                                        // same Month
    date.Day);                                                         // same Day

  // "12-AUG-19"
  string result = date.ToString("dd'-'MMM'-'yy", CultureInfo.InvariantCulture).ToUpper();

這取決於表列中的數據格式是什么。 如果它是日期類型,那么顯示12-AUG-19只是一個顯示問題,與插入無關。 如果它是 varchar 列,那么您首先需要從源 fe 讀取您的日期:

var source = "0812";
source += DateTime.Now.Year;
Console.WriteLine(source);
var date = DateTime.ParseExact(source, "MMddyyyy", System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(date);

所以現在你有日期作為DateTime對象,這取決於你的數據庫結構,如果你將它作為string到數據庫,或者作為適當的日期列。

在 Oracle 中,您可以使用多種不同的格式插入日期,因此不必使用“DD-mon-YY”格式來在日期列中插入值。 TO_DATE 函數默認使用當前年份值來完成格式:

SQL> SELECT TO_DATE('0812', 'MMDD')from dual;

TO_DATE('0812','M
-----------------
12/08/19 00:00:00

這是我的意思的一個例子:

SQL> CREATE TABLE DATE_SAMPLE ( DATE_VALUE DATE);

Table DATE_SAMPLE creado.

SQL> INSERT INTO DATE_SAMPLE SELECT TO_DATE('0812', 'MMDD')from dual;
1 fila insertadas.

SQL> SELECT TO_CHAR(DATE_VALUE, 'DD-mon-YY') from DATE_SAMPLE;

TO_CHAR(DATE_VALUE,'DD-MON-YY')                                            
---------------------------------------------------------------------------
12-ago-19

您可以在 TO_DATE 函數中插入指定格式的日期,並使用 TO_CHAR 函數以所需格式讀取它。

迄今為止

TO_CHAR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM