从 SQL 获取年份和月份

发布于 2024-12-02 08:29:39 字数 755 浏览 0 评论 0原文

我想知道如何将年份和月份存入我的数据库中。例如,假设现在是 2011 年 8 月。我需要的输出如下:CAB 11 08 001(CAB + YEAR + MONTH + CURRENT NO. in track number.)

这是我的 SQL

ALTER PROCEDURE [dbo].[generateTrackNo] AS
Declare @tempYear VARCHAR(5),@tempMonth VARCHAR(5)
Set @tempYear = Year(GetDate())
Set @tempMonth = Month(GetDate())
SELECT 'CAB' + Right(Cast(Year(GetDate()) as varchar(10)),2)+ Right(Cast(Month(GetDate()) as varchar(10)),2) + Right('000000'+ Cast(CurrentNo as varchar(10)), 5) from tblTrackNo where GenYear = @tempYear
--UPDATE tblTrackNo SET CurrentNo = CurrentNo + 1 where GenYear = @tempYear

:其输出为 CAB1180035,但我需要 CAB1108035。我需要像这样把这个月的零(0)08。

在我的表中,我只有 genYear 和当前编号。我需要为 MONTH 添加另一列吗?

I want to know how can I get the year and month into my database. For example, suppose it’s August, 2011. The output that I need is like this: CAB 11 08 001 (CAB + YEAR + MONTH + CURRENT NO. in tracking number. )

This is my SQL:

ALTER PROCEDURE [dbo].[generateTrackNo] AS
Declare @tempYear VARCHAR(5),@tempMonth VARCHAR(5)
Set @tempYear = Year(GetDate())
Set @tempMonth = Month(GetDate())
SELECT 'CAB' + Right(Cast(Year(GetDate()) as varchar(10)),2)+ Right(Cast(Month(GetDate()) as varchar(10)),2) + Right('000000'+ Cast(CurrentNo as varchar(10)), 5) from tblTrackNo where GenYear = @tempYear
--UPDATE tblTrackNo SET CurrentNo = CurrentNo + 1 where GenYear = @tempYear

The output for this is CAB1180035, but I need CAB1108035. I need to put zero(0) 08 like this for the month.

In my table I have only genYear and Current No. Do I need to add another column for MONTH?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

埋葬我深情 2024-12-09 08:29:39

看起来您正在为“年”、“月”等创建单独的列。

据我所知,大多数(全部?)DBMS 都有 Date 类型。使用它。他们在其中添加了很多有用的东西,例如接受不同格式的日期输入并以您能想到的几乎任何格式将它们作为输出。

例如,如果 Oracle 中有一个 Date 类型的 DT 列,则可以将月份输出为,

SELECT TO_CHAR(DT, "MM") FROM MYTABLE;

并且月份将始终显示为 2 位数字(01、02、. .. 12)

It looks like you're making separate columns for YEAR, MONTH, etc.

Most (all?) DBMSs I'm aware of have a Date type. Use it. They put a lot of useful stuff in it, like accepting date inputs in different formats and giving them as output in pretty much any format you can think of.

For example, if you have a DT column of type Date in Oracle, you can output month as

SELECT TO_CHAR(DT, "MM") FROM MYTABLE;

and the month will always be displayed as 2 digits (01, 02, ... 12)

平安喜乐 2024-12-09 08:29:39
SELECT 
    'CAB'
    + RIGHT(YEAR(GetDate()),2)
    + RIGHT('0' + CONVERT(VARCHAR, MONTH(GetDate())),2)
    + Right('00000' + Cast(CurrentNo as varchar(10)), 5)

这可能有效..

SELECT 
    'CAB'
    + RIGHT(YEAR(GetDate()),2)
    + RIGHT('0' + CONVERT(VARCHAR, MONTH(GetDate())),2)
    + Right('00000' + Cast(CurrentNo as varchar(10)), 5)

That might work..

稚然 2024-12-09 08:29:39

使用你的方法\逻辑..

Right('0' + Cast(Month(GetDate()) as varchar(10)),2)

Using your method \ logic..

Right('0' + Cast(Month(GetDate()) as varchar(10)),2)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文