ngClass mit mehreren/verschiedenen Aussagen

Ich schaute durch die ähnlichen Fragen, sondern es hätte nicht umbrochen, mein Kopf herum die Lösung, die ich Suche.

Also im Grunde habe ich dieses Stück code:

 <div class="attendees-list__item-order-status course-details-attendees text text-cooler-grey align-self-center pl-3"
          [ngClass]="
            heading === 'Abrechenbare Buchungen' ? 'col-md-4' : ' col-md-3'
          "
        >
          {{ attendee?.lastName }}, {{ attendee?.firstName }}
        </div>

Ich möchte zu ändern, und fügen Sie eine zusätzliche Anweisung. Die Logik wird if (heading === 'Abrechenbare Buchungen' oder if heading === 'Kürzlich abgerechnete Buchungen') and attendee?.orderStatus == 'CANCELLED', es sollte dann fügen Sie die Klasse 'text--line-through' zu beiden col-md-3 und col-md-4 an.

Ich habe versucht mit "||" als sah ich in andere simialr Fragen, konnte aber nicht finden eine funktionierende Lösung, ich schreibt nicht die syntax richtig wohl.

0
2019-09-17 15:52:41
Quelle
6 Antworten

Sie können verwenden Sie LEFT JOIN, um eine Kombination der beiden Tabellen.

SELECT table1.id, table1.amount_week_1
     , NVL(table2.amount_week_2, 0) as amount_week_2
FROM   table1
LEFT JOIN table2 on table2.ID = table1.ID
+0
2019-09-17 15:56:15

Adressierung nur Ihre Fehler, müssen Sie subtrahieren Sie die fünf Stunden vor der Konvertierung in einen string:

SELECT to_char(start_time - (5/24), 'MM-DD-YYYY HH24:MI') s_time from table;

oder mit einem Zeitabstand statt Bruch-Tage (die Blätter es als timestamp):

SELECT to_char(start_time - interval '5' hour, 'MM-DD-YYYY HH24:MI') s_time from table;

Demo:

create table t1 (col1 timestamp with local time zone);
insert into t1 (col1) values (timestamp '2019-09-01 00:00:00 UTC');

alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS';
alter session set nls_timestamp_format = 'YYYY-MM-DD HH24:MI:SS.FF1';
alter session set nls_timestamp_tz_format = 'YYYY-MM-DD HH24:MI:SS.FF1 TZH:TZM';

alter session set time_zone = 'Europe/London';

select col1, col1 - 5/24 as col1_adj1, col1 - interval '5' hour as col1_adj2
from t1;

COL1                  COL1_ADJ1             COL1_ADJ2
--------------------- --------------------- ---------------------
2019-09-01 01:00:00.0 2019-08-31 20:00:00   2019-08-31 20:00:00.0

alter session set time_zone = 'America/New_York';

select col1, col1 - 5/24 as col1_adj1, col1 - interval '5' hour as col1_adj2
from t1;

COL1                  COL1_ADJ1             COL1_ADJ2
--------------------- --------------------- ---------------------
2019-08-31 20:00:00.0 2019-08-31 15:00:00   2019-08-31 15:00:00.0

Warum ist es (oder scheint zu sein) 5 Stunden in den ersten Platz, da der Datentyp der Spalte ist mit lokalen Zeitzone, die Sie sehen, was auch immer der gespeicherte Wert in deiner session-Zeitzone. Es mag sein, dass Sie erwarten, um zu sehen, es in der Zeitzone des Servers. Vergleichen Sie die Werte, die Sie sehen, von systimestamp und current_timestamp, Sie werden wahrscheinlich fünf Stunden auseinander.

Einige Beispiel-Abfragen:

Manuelles einstellen der Zeit ist wahrscheinlich nicht eine gute Idee. Wenn Sie müssen, dann könnte es besser sein, verwenden Sie at time zone , um die Anpassung, wie das wird behandeln Sommerzeit, wenn nötig.

alter session set time_zone = 'Europe/London';

select col1,
  col1 at time zone 'Africa/Nairobi' as col1_adj3,
  to_char(col1 at time zone 'Africa/Nairobi', 'YYYY-MM-DD HH24:MI:SS') as col1_adj4
from t1;

COL1                  COL1_ADJ3                      COL1_ADJ4
--------------------- ------------------------------ -------------------
2019-09-01 01:00:00.0 2019-09-01 03:00:00.0 +03:00   2019-09-01 03:00:00

alter session set time_zone = 'America/New_York';

select col1,
  col1 at time zone 'Africa/Nairobi' as col1_adj3,
  to_char(col1 at time zone 'Africa/Nairobi', 'YYYY-MM-DD HH24:MI:SS') as col1_adj4
from t1;

COL1                  COL1_ADJ3                      COL1_ADJ4
--------------------- ------------------------------ -------------------
2019-08-31 20:00:00.0 2019-09-01 03:00:00.0 +03:00   2019-09-01 03:00:00

Das Ergebnis ist nun die gleiche, unabhängig von Ihrem lokalen session-Einstellungen.

+1
2019-09-17 15:57:52

[TL;DR] , Verwenden Sie start_time AT TIME ZONE 'PST' (oder je nachdem, was Zeit-zone geeignet ist, um Ihren Benutzer) oder " start_time AT LOCAL statt addieren oder subtrahieren einer Anzahl von Stunden.

Oracle-Setup:

CREATE TABLE table_name ( start_time TIMESTAMP WITH LOCAL TIME ZONE );

-- Change the session time zone:
ALTER SESSION SET TIME_ZONE = 'PST';
-- Use ISO 8601 formatting for displaying the timestamps
ALTER SESSION SET NLS_TIMESTAMP_FORMAT    = 'YYYY-MM-DD"T"HH24:MI:SS.FF3';
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'YYYY-MM-DD"T"HH24:MI:SS.FF3 TZH:TZM';

-- Insert some data.
-- The first row uses the local time zone
-- The second row explicitly specifies the time zone as UTC+01:00
INSERT INTO table_name ( start_time )
  SELECT TIMESTAMP '2019-09-17 00:00:00'        FROM DUAL UNION ALL
  SELECT TIMESTAMP '2019-09-17 00:00:00 +01:00' FROM DUAL;

Query:

Wenn wir das nun ändern Sie die Zeitzone des Benutzers:

ALTER SESSION SET TIME_ZONE = 'UTC';

Und erhalten die Werte in der Tabelle:

SELECT start_time,
       start_time AT TIME ZONE 'PST' AS start_time_pst,
       start_time AT LOCAL           AS start_time_local
FROM   table_name;

Diese Ausgänge:

START_TIME              | START_TIME_PST                 | START_TIME_LOCAL              
:---------------------- | :----------------------------- | :-----------------------------
2019-09-17T07:00:00.000 | 2019-09-17T00:00:00.000 -07:00 | 2019-09-17T07:00:00.000 +00:00
2019-09-16T23:00:00.000 | 2019-09-16T16:00:00.000 -07:00 | 2019-09-16T23:00:00.000 +00:00

Die Daten wurde von einem PST Zeitzone und wird nun abgefragt, in ein UTC Zeit-zone, und hat "Magische" verschoben 7 Stunden. Okay, es gibt nichts, Magie über es ... es ist die Zeitverschiebung, und standardmäßig, es sich nicht mit den Zeit-zone von der Säule, ohne explizit besagt, dass Sie wollen, dass es zu einer bestimmten Zeitzone.

Wenn Sie möchten, um die Daten auszuwählen, die in einer bestimmten Zeit-zone, dann verwenden Sie AT TIME ZONE 'PST' oder AT LOCAL-wenn Sie möchten, dass es in der Sitzung der lokalen Zeitzone.

Wenn wir verändern die session-Zeitzone wieder:

ALTER SESSION SET TIME_ZONE = 'EST';

Und ausführen der gleichen Abfrage, erhalten wir:

SELECT start_time,
       start_time AT TIME ZONE 'PST' AS start_time_pst,
       start_time AT LOCAL           AS start_time_local
FROM   table_name;
START_TIME              | START_TIME_PST                 | START_TIME_LOCAL              
:---------------------- | :----------------------------- | :-----------------------------
2019-09-17T02:00:00.000 | 2019-09-17T00:00:00.000 -07:00 | 2019-09-17T02:00:00.000 -05:00
2019-09-16T18:00:00.000 | 2019-09-16T16:00:00.000 -07:00 | 2019-09-16T18:00:00.000 -05:00

Wieder, Sie können sehen, dass die Werte sich geändert haben, aber durch die Auswahl AT TIME ZONE 'PST' Sie erhalten einen festen Ausgang, unabhängig von der session-Zeitzone und AT LOCAL zeigt die gleiche Zeit (wenn Sie die Einstellung für die Zeitzone, die jetzt zu sehen sind).

db<>Fiedel hier

+1
2019-09-17 15:57:52

D für gelöscht, M für modified Sie müssen commit .gitignore zu Ihrer Filiale.

+1
2019-09-17 16:05:50

Das ist das Ergebnis der kurzen version von git status an.

Basierend auf https://git-scm.com/docs/git-status,

  • '' = unverändert
  • M = modifiziert
  • A = added
  • D = gelöscht
  • R = umbenannt
  • C = kopiert
  • U = aktualisiert, aber individueller

Sie können lernen, mehr über die Bedeutung der jeweiligen Etappe an https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository.

Edit: ich denke für deinen Fall scheint es, dass die db.sqlite3 wurde vorher verfolgt, so dass, obwohl Sie Hinzugefügt haben, können Sie es in .gitignore, die änderungen würden immer noch verfolgt werden. Sie können sehen, wie fix es bei Wie man Git "vergessen" über eine Datei, die wurde verfolgt, aber ist jetzt in .gitignore?.
Auch scheint es, dass der .gitignore Datei wird irgendwie gelöscht, bevor Sie führen Sie die Kasse?

+1
2019-09-17 16:05:50

Die [] - operator CStringArray nimmt einen INT_PTR-argument, das 64-bit-Werte in x64 baut und 32-bits für x86 an. Also, sollten Sie verwenden die (eher ungeschickt-Suche) code gezeigt unten:

strNewDateFormatString.Replace(_T("%%B"),
            m_aryDateTrans[DATE_TRANS_MONTH][INT_PTR(rDate.GetMonth()) - INT_PTR(1)]);

(Sie können in der Lage sein, um Weg zu bekommen ohne die 2. Besetzung - probieren Sie es aus und sehen!)

+0
2019-09-17 16:30:04

Sehen Sie sich andere Fragen zu Tags an