Hướng dẫn python two digit year - trăn năm hai chữ số

Tôi cần phân tích các chuỗi đại diện cho ngày 6 chữ số ở định dạng yymmdd trong đó yy dao động từ 59 đến 05 (1959 đến 2005). Theo các tài liệu mô -đun ____99, năm xoay mặc định của Python là năm 1969 không hiệu quả với tôi.

Có một cách dễ dàng để ghi đè lên năm trục, hoặc bạn có thể đề xuất một số giải pháp khác? Tôi đang sử dụng Python 2.7. Cảm ơn!

Hướng dẫn python two digit year - trăn năm hai chữ số

MSW

42K9 Huy hiệu vàng85 Huy hiệu bạc 109 Huy hiệu đồng9 gold badges85 silver badges109 bronze badges

Đã hỏi ngày 17 tháng 5 năm 2013 lúc 2:34May 17, 2013 at 2:34

Tôi sẽ sử dụng

  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date
0 và phân tích nó bình thường. Sau đó, tôi sẽ sử dụng
  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date
1 trên đối tượng nếu nó qua ngày trần của bạn - điều chỉnh nó trở lại 100 năm .:

import datetime
dd = datetime.datetime.strptime(date,'%y%m%d')
if dd.year > 2005:
   dd = dd.replace(year=dd.year-100)

Đã trả lời ngày 17 tháng 5 năm 2013 lúc 2:47May 17, 2013 at 2:47

Hướng dẫn python two digit year - trăn năm hai chữ số

Mgilsonmgilsonmgilson

290K61 Huy hiệu vàng608 Huy hiệu bạc676 Huy hiệu Đồng61 gold badges608 silver badges676 bronze badges

Trao tiền thế kỷ cho ngày của bạn bằng cách sử dụng trục của riêng bạn:

  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date

và sau đó sử dụng

  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date
2 với Chỉ thị
  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date
3 thay vì
  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date
4.

Đã trả lời ngày 17 tháng 5 năm 2013 lúc 2:45May 17, 2013 at 2:45

Hướng dẫn python two digit year - trăn năm hai chữ số

MSWMSWmsw

42K9 Huy hiệu vàng85 Huy hiệu bạc 109 Huy hiệu đồng9 gold badges85 silver badges109 bronze badges

1

Đã hỏi ngày 17 tháng 5 năm 2013 lúc 2:34

Tôi sẽ sử dụng

  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date
0 và phân tích nó bình thường. Sau đó, tôi sẽ sử dụng
  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date
1 trên đối tượng nếu nó qua ngày trần của bạn - điều chỉnh nó trở lại 100 năm .:Nov 4, 2016 at 12:53

Hướng dẫn python two digit year - trăn năm hai chữ số

Đã trả lời ngày 17 tháng 5 năm 2013 lúc 2:47

today=datetime.datetime.today().strftime("%m/%d/%Y")
today=today[:-4]+today[-2:]

Hướng dẫn python two digit year - trăn năm hai chữ số

Mgilsonmgilson

290K61 Huy hiệu vàng608 Huy hiệu bạc676 Huy hiệu Đồng9 gold badges26 silver badges48 bronze badges

Trao tiền thế kỷ cho ngày của bạn bằng cách sử dụng trục của riêng bạn:Apr 26, 2017 at 5:47

và sau đó sử dụng

  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date
2 với Chỉ thị
  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date
3 thay vì
  year = int(date[0:2])
  if 59 <= year <= 99:
      date = '19' + date
  else
      date = '20' + date
4.

pivotyear = 1969
century = int(str(pivotyear)[:2]) * 100

def year_2to4_digit(year):
    return century + year if century + year > pivotyear else (century + 100) + year

Đã trả lời ngày 17 tháng 5 năm 2013 lúc 2:45Dec 8, 2018 at 12:34

Hướng dẫn python two digit year - trăn năm hai chữ số

MSWMSWwittrup

import datetime
date = '20-Apr-53'
dt = datetime.datetime.strptime( date, '%d-%b-%y' )
if dt.year > 2000:
    dt = dt.replace( year=dt.year-100 )
                     ^2053   ^1953
print dt.strftime( '%Y-%m-%d' )
1 gold badge12 silver badges23 bronze badges

Đã trả lời ngày 4 tháng 11 năm 2016 lúc 12:53

import datetime
def parse_date(date_str):
    parsed = datetime.datetime.strptime(date_str,'%y%m%d')
    current_date = datetime.datetime.now()
    if parsed > current_date:
        parsed = parsed.replace(year=parsed.year - 100)
    return parsed

Bạn cũng có thể thực hiện như sau:Sep 17, 2020 at 22:18

Con beoKyle McDonald

3.2529 huy hiệu vàng26 Huy hiệu bạc48 Huy hiệu đồng2 gold badges11 silver badges17 bronze badges

Xem thêm

Tùy chọn cấu hình máy chủ (SQL Server) SP_Configure (Transact-SQL) Tái cấu hình (Transact-SQL)

Phản HồI

Định cấu hình tùy chọn cấu hình máy chủ cắt hai năm

  • Bài viết
  • 14/09/2022
  • 2 Phú

Trong bài viết nào

Áp dụng cho: SQL Server (tất cả các phiên bản được hỗ trợ) SQL Server (all supported versions)

Chủ đề này mô tả cách định cấu hình tùy chọn cấu hình máy chủ cắt hai chữ số trong SQL Server bằng cách sử dụng SQL Server Management Studio hoặc Transact-SQL. Tùy chọn cắt hai chữ số chỉ định một số nguyên từ năm 1753 đến 9999 đại diện cho năm cắt để giải thích hai năm chữ số là bốn năm. Khoảng thời gian mặc định cho SQL Server là 1950-2049, đại diện cho một năm cắt giảm năm 2049. Điều này có nghĩa là SQL Server diễn giải một năm hai chữ số là 49 là 2049, một năm hai chữ số là 50 là 1950 và hai- Năm 99 là năm 1999. Để duy trì khả năng tương thích ngược, hãy để cài đặt ở giá trị mặc định.two digit year cutoff server configuration option in SQL Server by using SQL Server Management Studio or Transact-SQL. The two digit year cutoff option specifies an integer from 1753 to 9999 that represents the cutoff year for interpreting two-digit years as four-digit years. The default time span for SQL Server is 1950-2049, which represents a cutoff year of 2049. This means that SQL Server interprets a two-digit year of 49 as 2049, a two-digit year of 50 as 1950, and a two-digit year of 99 as 1999. To maintain backward compatibility, leave the setting at the default value.

Trong chủ đề này

  • Trước khi bắt đầu:

    khuyến nghị

    Bảo vệ

  • Để định cấu hình tùy chọn cắt hai năm, sử dụng:

    SQL Server Management Studio

    Transact-SQL

  • Theo dõi: Sau khi bạn định cấu hình tùy chọn cắt hai năm After you configure the two digit year cutoff option

Trước khi bắt đầu

khuyến nghị

  • Tùy chọn này là một tùy chọn nâng cao và chỉ nên được thay đổi bởi một quản trị viên cơ sở dữ liệu có kinh nghiệm hoặc SQL Server Professional được chứng nhận.

  • Các đối tượng tự động hóa OLE sử dụng 2030 làm năm cắt hai chữ số. Bạn có thể sử dụng tùy chọn cắt hai năm để cung cấp tính nhất quán trong các giá trị ngày giữa các ứng dụng SQL Server và máy khách.two digit year cutoff option to provide consistency in date values between SQL Server and client applications.

  • Để tránh sự mơ hồ với ngày, luôn luôn sử dụng bốn năm trong dữ liệu của bạn.

Bảo vệ

Quyền

Thực hiện các quyền trên sp_configure không có tham số hoặc chỉ có tham số đầu tiên được cấp cho tất cả người dùng theo mặc định. Để thực thi sp_configure với cả hai tham số để thay đổi tùy chọn cấu hình hoặc để chạy câu lệnh cấu hình lại, người dùng phải được cấp quyền cấp độ máy chủ Cài đặt. Quyền cài đặt thay đổi được giữ hoàn toàn bởi các vai trò máy chủ cố định của Sysadmin và ServerAdmin.sp_configure with no parameters or with only the first parameter are granted to all users by default. To execute sp_configure with both parameters to change a configuration option or to run the RECONFIGURE statement, a user must be granted the ALTER SETTINGS server-level permission. The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

Sử dụng SQL Server Management Studio

Để định cấu hình tùy chọn cắt hai năm chữ số

  1. Trong Object Explorer, nhấp chuột phải vào máy chủ và chọn Thuộc tính.Properties.

  2. Nhấp vào nút Cài đặt máy chủ Misc.Misc server settings node.

  3. Theo hỗ trợ hai năm chữ số, vào năm hai chữ số được nhập, hãy diễn giải nó thành một năm giữa hộp, nhập hoặc chọn một giá trị là năm kết thúc của khoảng thời gian.Two digit year support, in the When a two digit year is entered, interpret it as a year between box, type or select a value that is the ending year of the time span.

Sử dụng Transact-SQL

Để định cấu hình tùy chọn cắt hai năm chữ số

  1. Trong Object Explorer, nhấp chuột phải vào máy chủ và chọn Thuộc tính.

  2. Nhấp vào nút Cài đặt máy chủ Misc.New Query.

  3. Theo hỗ trợ hai năm chữ số, vào năm hai chữ số được nhập, hãy diễn giải nó thành một năm giữa hộp, nhập hoặc chọn một giá trị là năm kết thúc của khoảng thời gian.Execute. This example shows how to use sp_configure to set the value of the

      year = int(date[0:2])
      if 59 <= year <= 99:
          date = '19' + date
      else
          date = '20' + date
    
    5 option to
      year = int(date[0:2])
      if 59 <= year <= 99:
          date = '19' + date
      else
          date = '20' + date
    
    6.

USE AdventureWorks2012 ;  
GO  
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE ;  
GO  
EXEC sp_configure 'two digit year cutoff', 2030 ;  
GO  
RECONFIGURE;  
GO  
  

Sử dụng Transact-SQL

Kết nối với công cụ cơ sở dữ liệu.

Từ thanh tiêu chuẩn, nhấp vào truy vấn mới.

Sao chép và dán ví dụ sau vào cửa sổ Truy vấn và nhấp vào Thực thi. Ví dụ này cho thấy cách sử dụng sp_configure để đặt giá trị của tùy chọn year = int(date[0:2]) if 59 <= year <= 99: date = '19' + date else date = '20' + date 5 thành year = int(date[0:2]) if 59 <= year <= 99: date = '19' + date else date = '20' + date 6.

Để biết thêm thông tin, hãy xem Tùy chọn cấu hình máy chủ (SQL Server).
sp_configure (Transact-SQL)
RECONFIGURE (Transact-SQL)

Phản HồI

Gửi và xem ý kiến ​​ph